我对VBA很新,仅仅3天......但我发现它非常有用且易于使用,但现在我遇到了问题。 我需要使用不同的复选框创建一个UserForm,但我需要根据Sheet中其中一列使用的信息自动添加它们。 我相信我可以使用For .. Each .. Next但我真的不知道如何填写Checkboxes。 这是我现在唯一的解决方案,但我不能制作不同的复选框,只有一个。
For Each rCell In Range("B1:B" & LastRow)
If rCell.Value <> "" Then
UserForm1.Controls.Add ("Forms.CheckBox.1")
End If
Next
我需要做的另一件事是在添加后填写Checkbox的属性,这样我就可以使用后面的值。
任何帮助将不胜感激,谢谢!
答案 0 :(得分:7)
我确定你之前已经得到了你的答案,但是由于谷歌搜索了我的答案,我想我会发布另一个答案。将以下代码放在UserForm中:
Option Explicit
Private Sub UserForm_Initialize()
Dim curColumn As Long
Dim LastRow As Long
Dim i As Long
Dim chkBox As MSForms.CheckBox
curColumn = 1 'Set your column index here
LastRow = Worksheets("Sheet1").Cells(Rows.Count, curColumn).End(xlUp).Row
For i = 1 To LastRow
Set chkBox = Me.Controls.Add("Forms.CheckBox.1", "CheckBox_" & i)
chkBox.Caption = Worksheets("Sheet1").Cells(i, curColumn).Value
chkBox.Left = 5
chkBox.Top = 5 + ((i - 1) * 20)
Next i
End Sub
您需要修改代码以满足您的特定需求,但这将帮助您入门。
答案 1 :(得分:0)
首先看一下这个前面的答案,因为它解释了你需要的原则,我想。
答案 2 :(得分:0)
UserForm1.Controls("Checkbox" & i).Value