2012-07-24 40 views
1

方案) 我有七個變量; labelKid1,labelKid2,... LabelKid3。我正在通過單元格進行搜索以查找非空的單元格,然後將值輸入到標籤中,從labelKid1開始,然後轉到下一個標籤。使用for循環調用VBA中的連續變量名稱(即car1,car2 .... car10)

問題) 有沒有辦法讓我們的循環通過這些變量?通過這個我的意思是我可以以某種方式調用變量,如labelKid + j,j是for循環的值?這可以讓我更容易地走過標籤。

現在,我明白我可以通過將標籤放入數組並使用for循環來調用它們的標記來做到這一點,但是有沒有辦法像我上面所述那樣做?

+0

請參閱http://stackoverflow.com/questions/4777001/vba-is-variable-variable-possible – verdesmarald 2012-07-24 00:58:40

+1

您是在談論VBA中的變量(即Dim x As Integer)還是通過工作表訪問命名範圍VBA? – Enigmativity 2012-07-24 01:20:20

回答

2

不,VBA不支持變量變量(因爲它們在PHP中調用)。正如你所說,你將需要使用列表,字典或類似的代替。

+0

謝謝!我沒有意識到有一個確切的名字,我正在尋找。作爲新手程序員,非常感謝您! – nobillygreen 2012-07-24 01:39:34

+0

您可以使用變量名稱調用變量,儘管...檢查我的答案... – Scott 2013-12-10 15:39:16

2

你可以做到這一點使用UserForm1.Controls("labelKid" & i)其中要求按名稱與UserForm1

相關的任何形式的控制,因此您需要像這樣

Sub ControlName() 
Dim i As Long 
For i = 1 To 10 
    UserForm1.Controls("labelKid" & i).Value = i 
Next 
End Sub 

希望這有助於!