根据单元格值将checkbox添加到UserForm

我对VBA很新,只有3天…但是我发现它非常有用,易于使用,但现在我面临一个问题。 我需要使用不同的checkbox,但我需要他们自动添加基于在一个工作表的列中使用的信息添加一个用户窗体。 我相信我可以使用For .. Each ..接下来,但我真的不知道如何填充checkbox。 这是我现在唯一的解决scheme,但我不能做出不同的checkbox,只有一个。

For Each rCell In Range("B1:B" & LastRow) If rCell.Value <> "" Then UserForm1.Controls.Add ("Forms.CheckBox.1") End If Next 

还有一件事,我需要做的是填充checkbox的属性,一旦它被添加,所以我可以使用后的值。

任何帮助将不胜感激,谢谢!

我相信你现在已经得到了你的答案,但是由于这是在我的谷歌search,我想我会张贴另一个答案。 将下面的代码放在您的用户窗体中:

 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 

您将需要修改代码以满足您的特定需求,但是这将使您开始。

看看这个以前的答案,因为它解释了你需要的校长,我想。

将控件添加到框架

 UserForm1.Controls("Checkbox" & i).Value