Excel的Shapes.Range(数组(“someName”)) – 什么是定义的范围?
我在Excel VBA中有以下代码片段:
With Worksheets("MLS").Shapes.Range(Array("Rounded Rectangle 1")).Fill .ForeColor.RGB = RGB(166, 166, 166) .Transparency = 0.3 End With
我不知道“圆angular矩形1”在哪里定义,以及它指的是什么形状或范围。 它没有在VBA代码中定义,我已经尝试search整个项目的名称。
我在哪里可以find“Rounded Rectangle 1”的定义,以及程序员有意使用此形状/范围/数组构造来引用范围/形状的内容?
Worksheets("MLS").Shapes.Range(Array("Rounded Rectangle 1"))
引用工作表“MLS”上的一个名为“Rounded Rectangle 1”的形状,所以你不会find你正在寻找的定义你的代码,这是工作表上存在的一个对象。
Worksheets("SheetName").Shapes.Range([arg])
用于引用指定工作表上存在的形状的子集(即该工作表的Shapes
集合中的对象)。 Shapes.Range
方法的参数可以是:
- 一个Integer,指的是
Shapes
集合中的Shapes
索引 - string,指
Shapes
集合中形状的名称。 - 包含string和/或整数的数组,引用
Shapes
集合中的Shapes
的名称/索引。
在你的具体情况下, Array("Rounded Rectangle 1")
是不必要的,并且所讨论的行可能被写为
Worksheets("MLS").Shapes.Range("Rounded Rectangle 1")
具有相同的效果,甚至只是
Worksheets("MLS").Shapes("Rounded Rectangle 1")
但是,如果你的工作表中有多个圆angular矩形,那么你需要使用你的神秘程序员使用的全部粗体参考,
Worksheets("MLS").Shapes.Range(Array("Rounded Rectangle 1", "Rounded Rectangle 2", "Rounded Rectangle 3"))
这将返回包含形状对象的集合Rounded Rectangle 1,2&3。
当您创build一个形状时,Excel将自动为您命名。 您可以通过select形状并在名称框中更改该名称来更改该名称。
正如@Rory所指出的,如果你的代码正在工作,那么这个形状就位于MLS工作表上。