如何为运行时在VBA中提供属性名称的属性分配值?

时间:2009-11-16 19:13:07

标签: vba excel-vba excel

我正在尝试创建一个工作表,该工作表会创建一个值列表,用于初始化实例化类的值。

例如,我的初始化工作表中可能包含以下内容:

Property Name              Value
StartingCol                A
StartingRow                11
然后我会创建一个解析这个工作表的类,并为我提供一个可以用来初始化实例化对象属性的可枚举的类。但是,我不确定如何使用字符串在运行时指定属性值,而不是在代码中明确指定它。您可以在下面的代码中了解我想要完成的任务:

Sub test_PropertyAssignment()
Dim sp As SheetParser
Dim strFieldName As String
Dim strFieldNameValue As String
Set sp = New SheetParser

'The property name is supplied explicitly'
sp.StartingCol = "B"

strFieldName = "StartingCol"
strFieldNameValue = "B"

sp.[how can I supply strFieldName to specify the property?] = strFieldNameValue 'Will not Work'

End Sub

有没有办法在运行时使用字符串来指定属性名称而不是在代码中明确指定?

1 个答案:

答案 0 :(得分:2)

在VBA帮助中查找CallByName函数。您应该可以执行以下操作:

Call CallByName(sp,strFieldName,vbLet,strFieldNameValue)