VBA按名称而不是索引设置对象属性

时间:2013-09-08 23:25:41

标签: oop object excel-vba collections vba

我不确定如何提出这个问题所以我不知道如何寻找答案。这是我第一次和OOP一起玩,而且我像往常一样在头脑中。

因此,在VBA Excel中,您可以通过index引用工作表,您可以通过两种方式进行工作,对吧?

Sheets (1)
    'or
Sheets ("Sheet1")

我试图对我的对象和集合做同样的事情,而不是引用索引属性,我不知道从哪里开始。例如:

    Set objCar("MyCar").color = "Blue" 'from a collection of Cars

我确信我的知识存在缺陷,我仍然试着用oop来解决这些问题。

1 个答案:

答案 0 :(得分:1)

几乎..............您使用Set来创建对象的特定实例。然后,您可以为该实例着色。假设对象是Shape:

Sub dural()
    Dim S As Shape
    Set S = ActiveSheet.Shapes(1)
    S.Fill.ForeColor.RGB = RGB(128, 0, 0)
    '
    '  Or
    '
    S.Name = "MyCar"
    ActiveSheet.Shapes("MyCar").Fill.ForeColor.RGB = RGB(0, 100, 0)
End Sub