0
我無法從用戶窗體的複選框獲取值。我遇到的問題是,用戶窗體基於表單中的值創建可變數量的複選框。造成這種情況的代碼:VBA從用戶表單獲取複選框值
Private Sub UserForm_Initialize()
Dim LastRow As Long
Dim i As Long
Dim Teller As Long
Dim chkBox As MSForms.CheckBox
Teller = 1
LastRow = Worksheets("Sheet").Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To LastRow
If Worksheets("Sheet").Cells(i, 1).Value = Worksheets("Sheet").Range("S1").Value Then
Set chkBox = Me.Controls.Add("Forms.CheckBox.1", "CheckBox_" & Teller)
chkBox.Caption = Worksheets("Sheet").Cells(i, 9).Value
chkBox.Left = 5
chkBox.Top = 25 + ((Teller - 1) * 20)
Teller = Teller + 1
End If
Next i
End Sub
所以這造成了一些複選框的命名CheckBox_1,CheckBox_2等 問題是,當我試圖讓該模塊在CheckBox_1價值,CheckBox_1尚未建立,所以我我無法使用它。
Dim x as String
With UserForm4
.Show
x = .CheckBox_1
MsgBox (x)
End
End With
不必**必須循環控制 - 「x = .Controls(」CheckBox_1「)。如果OP知道他們想要第一個控件,Value就會工作。 (但顯然'x = .Controls(「CheckBox_」&i).Value'可以用於需要循環的場合。) – YowE3K
@ YowE3K工作正常!感謝你們倆。 – Stan