Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop VBA按名称而不是索引设置对象特性_Oop_Object_Excel_Collections_Vba - Fatal编程技术网

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

Oop VBA按名称而不是索引设置对象特性,oop,object,excel,collections,vba,Oop,Object,Excel,Collections,Vba,我不知道如何问这个问题,所以我不知道如何寻找答案。这是我第一次玩OOP,和往常一样,我很兴奋 因此,在VBA Excel中,您可以通过索引来引用工作表,这有两种方法,对吗 Sheets (1) 'or Sheets ("Sheet1") 我试图对我的对象和集合执行相同的操作,而不是引用索引属性,我不知道从哪里开始。例如: Set objCar("MyCar").color = "Blue" 'from a collection of Cars 我确信我缺乏知识,我仍在努力思考

我不知道如何问这个问题,所以我不知道如何寻找答案。这是我第一次玩OOP,和往常一样,我很兴奋

因此,在VBA Excel中,您可以通过
索引来引用工作表,这有两种方法,对吗

Sheets (1)
    'or
Sheets ("Sheet1")
我试图对我的对象和集合执行相同的操作,而不是引用索引属性,我不知道从哪里开始。例如:

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

我确信我缺乏知识,我仍在努力思考oop到底发生了什么。

几乎………您使用Set创建对象的特定实例。然后可以为该实例着色。假设对象是一个形状:

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