2009-11-16 87 views
2

我正在嘗試創建一個工作表,該工作表創建一個將用於初始化實例化類的值的值列表。如何爲VBA中的運行時提供屬性名稱的屬性賦值?

例如,我可以在我的初始化工作如下:

Property Name    Value 
StartingCol    A 
StartingRow    11 

我然後創建一個類,它會分析這個工作表,並提供給我,我可以用它來初始化屬性的enumberable一個實例化的對象。但是,我不知道我怎麼能夠在運行時使用字符串指定屬性值,而不是在代碼中明確指定它。你可以得到什麼,我想在下面的代碼來完成一個想法:

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 

是否有使用字符串在運行時指定屬性的名稱,而不是在代碼中明確指定的方法嗎?

回答

2

在VBA幫助中查找CallByName函數。你應該能夠做這樣的事情:

Call CallByName(sp,strFieldName,vbLet,strFieldNameValue)

+0

這種支持讓屬性分配偉大的工作。現在我試圖弄清楚如何使它對尚未實例化的對象的Set屬性起作用。另一個SO問題。 – 2009-11-16 23:00:35

+0

你肯定需要一個實際的對象實例來使用CallByName()。 – jtolle 2009-11-16 23:15:36

相關問題