2016-06-06 117 views
0

我有幾個複選框,我將根據for循環的索引更改可見性和標題。我有一個1到X的數組。在我的表單中,我沿着數組傳遞,每個數組元素都是一個字符串。「名稱」內的VBA變量

不管怎麼說,在我的工作,我路過:

Sub Stripdown_Button_Click() 
    LastUpdateColumn = Sheets("Update").UsedRange.Columns.Count 
    Header_Array = Range(Cells(7, 1), Cells(7, LastUpdateColumn)).Value 
    Header_Form.Header_Select LastUpdateColumn, Header_Array() 
    Header_Form.Show 
End Sub 

LastUpdateColumn將是一個整數,Header_Array將是一個字符串數組。

我的形式,我可能完全在這一點上是如下搞砸了......

Public Sub Header_Select(Index As Integer, Header_List() As String) 

    For x = 1 To Index 
     If Header_List(1) <> "" Then 
      cb & Index.Visible = True 
      cb & Index.Caption = Header_List(Index) 
     Else 
      MsgBox "Form Error. Contact Engineering", vbOKOnly 
     On Error Resume Next 
    End Sub 
+1

VB.NET和VBA是兩個完全不同BASIC方言。如果您正在使用MS Access,Word或Excel,那麼您可能正在使用VBA。如果您正在使用Visual Studio,那麼您可能正在使用VB.NET。 –

回答

1

你不能從一個字符串創建一個變量名;然而,形式有Controls默認屬性接受控件名稱爲指標

Dim cb As CheckBox 

Set cb = Controls("cb" & Index) 
cb.Visible = True 
cb.Caption = Header_List(Index) 

因爲屬性是默認屬性,這個其它語法也適用:

Set cb = Me("cb" & Index) 
+0

天才,非常感謝。我剛剛遇到另一個問題。它不讓我傳遞「Range(Cells(7,1),Cells(7,LastUpdateColumn))。Value」到我的數組變量中。它將進入「類型不匹配」。一切都設置爲字符串。所有的數據都是簡單的文本標題。 – Flibertyjibbet

+0

這實際上沒有工作。說這是不匹配的。 – Flibertyjibbet

+0

在問題上設置斷點並檢查值。 https://www.google.ch/search?q=how+to+debug+vba –