2013-12-19 106 views
6

我想根據存儲在工作表中的值動態設置標籤數組的標題(在VBA表單中)。因此,到目前爲止,我可以將它們一個接一個這樣的:如何動態更新VBA表單中的標籤標題?

Label1.Caption = MySheet.Range("A1").Value 
Label2.Caption = MySheet.Range("B1").Value 
Label3.Caption = MySheet.Range("C1").Value ... 

有很多遵循一個經常性的圖案的標籤,我想用的東西更聰明,如:

'Method1 
For i = 1 To X 
    Dim MyLabel as Object: Set MyLabel = "Label" & i 
    MyLabel.Caption = MySheet.Cells(i + 1, i).Value 
Next i 
'Method2 
For i = 1 To X 
    Label(i).Caption = MySheet.Cells(i + 1, i).Value 
Next I 
'Both Methods failed. I really appreciate some feedback on this. 

回答

14

使用Controls對象

For i = 1 To X 
    Controls("Label" & i).Caption = MySheet.Cells(i + 1, i).Value 
Next 
+0

如果標籤不在用戶窗體內,而是在工作表上,這同樣可能嗎? – Ans

+0

工作表上有什麼樣的控件?表單控件或ActiveX控件?您可能想發佈一個新問題,以便它不僅可以幫助您,還可以幫助未來的訪問者? –

2

如果你想在VBA來使用:

For i = 1 To X 
    UserForm1.Controls("Label" & i).Caption = MySheet.Cells(i + 1, i).Value 
Next