我在VBA中创建了一个包含多个私有变量的类
Private pVar1 as Double
Private pVar2 as Double
...
我为每个变量都有一对Property Get/Let
。
在Excel中,我有一个系列标签(在A列中)和值(在B列中),每个都匹配一个变量。从Excel到VBA读取此数据的最佳方法是什么?
我看了http://dailydoseofexcel.com/archives/2011/12/26/populating-class-properties/,但在这种情况下并不完全合适。
是我唯一的解决方案
Dim obj as new myClass
obj.property1 = range("b1").value
obj.property2 = range("b2").value
...
还是可以选择基于obj.property
为range("a1").value
分配值的方式?
答案 0 :(得分:2)
A1包含属性名称,您可以使用CallByName:
callbyname obj, Range("A1").Value, VbLet, Range("B1").value
例如。
答案 1 :(得分:1)
您的链接涵盖了“将列位置映射到属性”。你可以:
For iRow = lo to hi
propname = ws.cells(iRow, 1)
Select Case propname
Case "alpha": obj.Alpha = ws.cells(iRow, 2)
..
Case Else: Msgbox "Oops"
End Select
Next iRow