将数据从Excel加载到类中

时间:2014-07-21 14:52:56

标签: excel vba excel-vba

我在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.propertyrange("a1").value分配值的方式?

2 个答案:

答案 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