Excel 如何使用VBA中的命令按钮以编程方式在现有用户窗体上创建新复选框?

Excel 如何使用VBA中的命令按钮以编程方式在现有用户窗体上创建新复选框?,excel,vba,Excel,Vba,我试过了` Set chkBox=UserForm1.Controls.Add(“Forms.Checkbox.i”、“Checkbox”&i) '.Object.Caption=范围(“D3”).值 我甚至试过 With ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", _ Left:=51.75, Top:=183, Width:=120, Height:=19.5) .Name = "NewCheckBox

我试过了`

Set chkBox=UserForm1.Controls.Add(“Forms.Checkbox.i”、“Checkbox”&i)
'.Object.Caption=范围(“D3”).值
我甚至试过

With ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", _
    Left:=51.75, Top:=183, Width:=120, Height:=19.5)
    .Name = "NewCheckBox"
    .Object.Caption = Range("D3").Value
但这给了我一个复选框,但不是在我创建的userform上,而是在我所在的activesheet上


任何建议

都是我写的最原始的形式,这增加了一个复选框(在UserForm1的左上角)


你会想玩定位之类的游戏。

在我写的最原始的表单中,这添加了一个复选框(在UserForm1的左上角)


您需要处理定位等问题。

对于第二段代码,似乎是因为您正在使用
ActiveSheet
限定
Add
方法。如果将
ActiveSheet
更改为
UserForm1
,该怎么办?此外,对于第一部分,它应该是“Forms.Checkbox.1”。正在设置
i
的位置?在第一位中,它应该是
Forms.Checkbox.1
。此代码在哪里?请查看。对于第二段代码,似乎是因为您正在使用
ActiveSheet
限定
Add
方法。如果将
ActiveSheet
更改为
UserForm1
,该怎么办?此外,对于第一部分,它应该是“Forms.Checkbox.1”。正在设置
i
的位置?在第一位中,它应该是
Forms.Checkbox.1
。这段代码在哪里?看一看。这很有效,非常感谢,尽管我必须以编程方式命名,这应该没有问题。这很有效,非常感谢,尽管我必须以编程方式命名,这应该没有问题
Private Sub CommandButton1_Click()

        Dim chkBox As Control

        Set chkBox = Me.Controls.Add("Forms.CheckBox.1", "checkbox")

End Sub