2014-03-06 26 views
0

當我使用VBA時,我想按功能更新對象的字段,但我不知道該怎麼做。如何更新VBA中的Ojbect字段?

任何一個給我一些建議?

Type MyObject 
    a as String 
    b as Boolean 
End Type 

'update function 
Sub update(ByVal o as MyObject, key as String, value as string) 
    o.key = value 'this is what I want to do! 
End sub 

我不太瞭解VBA,這可能嗎?

+1

我也強烈提醒,調用一個'類型'類似'MyObject'對象和類型是兩個特定的事情。當你的類型名稱更能描述其功能或用途時,代碼更簡單。 – Bmo

回答

2

您不能設置名爲key的字段的任何值,因爲在MyObject的定義中不存在此密鑰。你可以做的是這樣的:

o.a = key 
o.b = value 

編輯

要指定要更新的字段,你可以添加一個條件語句給你工作。

If key = "a" Then 
    o.a = value 
Else 
    o.b = value 
End If 

恐怕你不能遍歷一個類型的所有字段,因爲VBA不支持反射。

+0

+1瞭解正在詢問的內容:P – 2014-03-06 12:39:44

+0

感謝您的回答。但函數的目的是當函數被調用時,我不知道會被更新或將被更新,所以我想調用像「update(myObject,」a,「valueofA」)或更新(myObject,「b」,「true」) – firtre

+0

@firtre如果這回答你的問題,考慮接受它與綠色複選標記:) – 2014-03-06 12:42:41