根据参数在用户窗体中创buildcheckbox
我想要一个用户select他想要创build一个新的文本行。 但是他可以select的纸张数量可能随着时间的推移而变化,我不想对纸张名称进行硬编码。
这是一个我想要做的例子(“o”代表checkbox):
o 01.2013 o 07.2013 o 01.2014 o 07.2014
我创build了一个空框架的用户窗体来放置我的checkbox,并将这一点代码添加到用户窗体中:
Private Tck(10) As MSForms.CheckBox Private Sub UserForm_Initialize() Dim ws As Worksheet Dim i As Long i = 1 For Each ws In ActiveWorkbook.Worksheets If Left(ws.Name, 3) = "T2M" Then Set Tck(i) = Frame1.Controls.Add("Forms.Checkbox.1", "Checkbox" & i) Tck(i).Caption = Right(ws.Name, 7) i=i+1 End If Next End Sub
但是它只增加了一个checkbox和validationiftesting的最后一张表格。
我试图做两个迭代之间的偏移量,但我不能修改Tck(i)
的位置,例如使用Tck(i).top
。
我也尝试了这个问题的答案: 使用VBA将控件添加到Excel用户窗体中的框架,但它也不起作用。
你的checkbox在那里,你不能看到他们,因为他们被叠加在一起。 你有正确的想法,改变“顶”的价值。
Public Sub addCheckboxes() Dim ws As Worksheet Dim i As Integer Dim tck As MSForms.CheckBox Dim offset As Integer: offset = 5 For i = 1 To Worksheets.Count Set ws = Worksheets(i) Set tck = Frame1.Controls.Add("Forms.Checkbox.1", "Checkbox" & i, True) tck.Top = offset offset = offset + 15 Next i End Sub