我在Excel VBA中有以下代码段:
With Worksheets("MLS").Shapes.Range(Array("Rounded Rectangle 1")).Fill
.ForeColor.RGB = RGB(166, 166, 166)
.Transparency = 0.3
End With
我不知道“圆角矩形1”的定义位置以及它所指的形状或范围。它没有在VBA代码中定义,我已经尝试在整个项目中搜索名称。
在哪里可以找到“圆角矩形1”的定义,以及程序员可能使用此形状/范围/数组构造引用范围/形状的原因?
答案 0 :(得分:2)
创建形状时,Excel会自动为您命名。您可以通过选择形状并在名称框中更改它来更改此名称。
正如@Rory指出的那样,如果你的代码正常工作,那么形状就位于MLS表格上。
答案 1 :(得分:2)
Worksheets("MLS").Shapes.Range(Array("Rounded Rectangle 1"))
指的是一个名为"圆角矩形1"在工作表" MLS"因此,您无法在代码中找到您要查找的定义,它是工作表中存在的对象。
Worksheets("SheetName").Shapes.Range([arg])
用于引用指定工作表上存在的形状的子集(即该工作表中的对象Shapes
集合)。 Shapes.Range
方法的参数可以是:
Shapes
集合Shapes
集合中形状的名称。Shapes
集合中形状的名称/索引。在您的具体情况下,Array("Rounded Rectangle 1")
的使用是不必要的,有问题的行可以写成
Worksheets("MLS").Shapes.Range("Rounded Rectangle 1")
效果相同,甚至只是
Worksheets("MLS").Shapes("Rounded Rectangle 1")
然而,如果您的工作表上有多个圆角矩形,那么您将需要使用您的神秘程序员使用的完整脂肪参考,
Worksheets("MLS").Shapes.Range(Array("Rounded Rectangle 1", "Rounded Rectangle 2", "Rounded Rectangle 3"))
将返回包含形状对象的集合圆角矩形1,2和2; 3。