Excel 添加工作表时自动展开userform复选框
我需要一个带有复选框的用户表单来运行一些例程。此用户表单需要根据图纸数量展开复选框。因此,对于一张工作表,必须只有一个带有两个复选框的复选框,两个复选框等。工作表的数量是多种多样的,并且取决于用户通过功能区按钮输入的内容。 有人能帮我一点忙吗。 下面的代码我都准备好了。我想一定有更好的办法Excel 添加工作表时自动展开userform复选框,excel,checkbox,userform,vba,Excel,Checkbox,Userform,Vba,我需要一个带有复选框的用户表单来运行一些例程。此用户表单需要根据图纸数量展开复选框。因此,对于一张工作表,必须只有一个带有两个复选框的复选框,两个复选框等。工作表的数量是多种多样的,并且取决于用户通过功能区按钮输入的内容。 有人能帮我一点忙吗。 下面的代码我都准备好了。我想一定有更好的办法 Private Sub All_Sheets_Click() Dim x As Integer Dim i As Integer x = 1 For i = 1 To 30 With Userform1
Private Sub All_Sheets_Click()
Dim x As Integer
Dim i As Integer
x = 1
For i = 1 To 30
With Userform1
.Controls("SheetCheckBox" & x).value = True
End With
x = x + 1
Next i
End Sub
Private Sub Undo_Click()
Dim x As Integer
Dim i As Integer
x = 1
For i = 1 To 30
With Userform1
.Controls("SheetCheckBox" & x).value = False
End With
x = x + 1
Next i
End Sub
Private Sub UserForm_Initialize()
Dim numsht As Long
numsht = ThisWorkbook.Worksheets.Count
If numsht = 1 Then
SheetCheckBox1.Visible = True
ElseIf numsht = 2 Then
SheetCheckBox1.Visible = True
SheetCheckBox2.Visible = True
ElseIf numsht = 3 Then
SheetCheckBox1.Visible = True
SheetCheckBox2.Visible = True
SheetCheckBox3.Visible = True
ElseIf numsht = 4 Then
SheetCheckBox1.Visible = True
SheetCheckBox2.Visible = True
SheetCheckBox3.Visible = True
SheetCheckBox4.Visible = True
ElseIf numsht = 5 Then
SheetCheckBox1.Visible = True
SheetCheckBox2.Visible = True
SheetCheckBox3.Visible = True
SheetCheckBox4.Visible = True
SheetCheckBox5.Visible = True
ElseIf numsht = 6 Then
SheetCheckBox1.Visible = True
SheetCheckBox2.Visible = True
SheetCheckBox3.Visible = True
SheetCheckBox4.Visible = True
SheetCheckBox5.Visible = True
SheetCheckBox6.Visible = True
ElseIf numsht = 7 Then
SheetCheckBox1.Visible = True
SheetCheckBox2.Visible = True
SheetCheckBox3.Visible = True
SheetCheckBox4.Visible = True
SheetCheckBox5.Visible = True
SheetCheckBox6.Visible = True
SheetCheckBox7.Visible = True
ElseIf numsht = 8 Then
SheetCheckBox1.Visible = True
SheetCheckBox2.Visible = True
SheetCheckBox3.Visible = True
SheetCheckBox4.Visible = True
SheetCheckBox5.Visible = True
SheetCheckBox6.Visible = True
SheetCheckBox7.Visible = True
SheetCheckBox8.Visible = True
ElseIf numsht = 9 Then
SheetCheckBox1.Visible = True
SheetCheckBox2.Visible = True
SheetCheckBox3.Visible = True
SheetCheckBox4.Visible = True
SheetCheckBox5.Visible = True
SheetCheckBox6.Visible = True
SheetCheckBox7.Visible = True
SheetCheckBox8.Visible = True
SheetCheckBox9.Visible = True
ElseIf numsht = 10 Then
SheetCheckBox1.Visible = True
SheetCheckBox2.Visible = True
SheetCheckBox3.Visible = True
SheetCheckBox4.Visible = True
SheetCheckBox5.Visible = True
SheetCheckBox6.Visible = True
SheetCheckBox7.Visible = True
SheetCheckBox8.Visible = True
SheetCheckBox9.Visible = True
SheetCheckBox10.Visible = True
ElseIf numsht = 11 Then
SheetCheckBox1.Visible = True
SheetCheckBox2.Visible = True
SheetCheckBox3.Visible = True
SheetCheckBox4.Visible = True
SheetCheckBox5.Visible = True
SheetCheckBox6.Visible = True
SheetCheckBox7.Visible = True
SheetCheckBox8.Visible = True
SheetCheckBox9.Visible = True
SheetCheckBox10.Visible = True
SheetCheckBox11.Visible = True
ElseIf numsht = 12 Then
SheetCheckBox1.Visible = True
SheetCheckBox2.Visible = True
SheetCheckBox3.Visible = True
SheetCheckBox4.Visible = True
SheetCheckBox5.Visible = True
SheetCheckBox6.Visible = True
SheetCheckBox7.Visible = True
SheetCheckBox8.Visible = True
SheetCheckBox9.Visible = True
SheetCheckBox10.Visible = True
SheetCheckBox11.Visible = True
SheetCheckBox12.Visible = True
ElseIf numsht = 13 Then
SheetCheckBox1.Visible = True
SheetCheckBox2.Visible = True
SheetCheckBox3.Visible = True
SheetCheckBox4.Visible = True
SheetCheckBox5.Visible = True
SheetCheckBox6.Visible = True
SheetCheckBox7.Visible = True
SheetCheckBox8.Visible = True
SheetCheckBox9.Visible = True
SheetCheckBox10.Visible = True
SheetCheckBox11.Visible = True
SheetCheckBox12.Visible = True
SheetCheckBox13.Visible = True
ElseIf numsht = 14 Then
SheetCheckBox1.Visible = True
SheetCheckBox2.Visible = True
SheetCheckBox3.Visible = True
SheetCheckBox4.Visible = True
SheetCheckBox5.Visible = True
SheetCheckBox6.Visible = True
SheetCheckBox7.Visible = True
SheetCheckBox8.Visible = True
SheetCheckBox9.Visible = True
SheetCheckBox10.Visible = True
SheetCheckBox11.Visible = True
SheetCheckBox12.Visible = True
SheetCheckBox13.Visible = True
SheetCheckBox14.Visible = True
ElseIf numsht = 15 Then
SheetCheckBox1.Visible = True
SheetCheckBox2.Visible = True
SheetCheckBox3.Visible = True
SheetCheckBox4.Visible = True
SheetCheckBox5.Visible = True
SheetCheckBox6.Visible = True
SheetCheckBox7.Visible = True
SheetCheckBox8.Visible = True
SheetCheckBox9.Visible = True
SheetCheckBox10.Visible = True
SheetCheckBox11.Visible = True
SheetCheckBox12.Visible = True
SheetCheckBox13.Visible = True
SheetCheckBox14.Visible = True
SheetCheckBox15.Visible = True
ElseIf numsht = 16 Then
SheetCheckBox1.Visible = True
SheetCheckBox2.Visible = True
SheetCheckBox3.Visible = True
SheetCheckBox4.Visible = True
SheetCheckBox5.Visible = True
SheetCheckBox6.Visible = True
SheetCheckBox7.Visible = True
SheetCheckBox8.Visible = True
SheetCheckBox9.Visible = True
SheetCheckBox10.Visible = True
SheetCheckBox11.Visible = True
SheetCheckBox12.Visible = True
SheetCheckBox13.Visible = True
SheetCheckBox14.Visible = True
SheetCheckBox15.Visible = True
SheetCheckBox16.Visible = True
ElseIf numsht = 17 Then
SheetCheckBox1.Visible = True
SheetCheckBox2.Visible = True
SheetCheckBox3.Visible = True
SheetCheckBox4.Visible = True
SheetCheckBox5.Visible = True
SheetCheckBox6.Visible = True
SheetCheckBox7.Visible = True
SheetCheckBox8.Visible = True
SheetCheckBox9.Visible = True
SheetCheckBox10.Visible = True
SheetCheckBox11.Visible = True
SheetCheckBox12.Visible = True
SheetCheckBox13.Visible = True
SheetCheckBox14.Visible = True
SheetCheckBox15.Visible = True
SheetCheckBox16.Visible = True
SheetCheckBox17.Visible = True
ElseIf numsht = 18 Then
SheetCheckBox1.Visible = True
SheetCheckBox2.Visible = True
SheetCheckBox3.Visible = True
SheetCheckBox4.Visible = True
SheetCheckBox5.Visible = True
SheetCheckBox6.Visible = True
SheetCheckBox7.Visible = True
SheetCheckBox8.Visible = True
SheetCheckBox9.Visible = True
SheetCheckBox10.Visible = True
SheetCheckBox11.Visible = True
SheetCheckBox12.Visible = True
SheetCheckBox13.Visible = True
SheetCheckBox14.Visible = True
SheetCheckBox15.Visible = True
SheetCheckBox16.Visible = True
SheetCheckBox17.Visible = True
SheetCheckBox18.Visible = True
ElseIf numsht = 19 Then
SheetCheckBox1.Visible = True
SheetCheckBox2.Visible = True
SheetCheckBox3.Visible = True
SheetCheckBox4.Visible = True
SheetCheckBox5.Visible = True
SheetCheckBox6.Visible = True
SheetCheckBox7.Visible = True
SheetCheckBox8.Visible = True
SheetCheckBox9.Visible = True
SheetCheckBox10.Visible = True
SheetCheckBox11.Visible = True
SheetCheckBox12.Visible = True
SheetCheckBox13.Visible = True
SheetCheckBox14.Visible = True
SheetCheckBox15.Visible = True
SheetCheckBox16.Visible = True
SheetCheckBox17.Visible = True
SheetCheckBox18.Visible = True
SheetCheckBox19.Visible = True
ElseIf numsht = 20 Then
SheetCheckBox1.Visible = True
SheetCheckBox2.Visible = True
SheetCheckBox3.Visible = True
SheetCheckBox4.Visible = True
SheetCheckBox5.Visible = True
SheetCheckBox6.Visible = True
SheetCheckBox7.Visible = True
SheetCheckBox8.Visible = True
SheetCheckBox9.Visible = True
SheetCheckBox10.Visible = True
SheetCheckBox11.Visible = True
SheetCheckBox12.Visible = True
SheetCheckBox13.Visible = True
SheetCheckBox14.Visible = True
SheetCheckBox15.Visible = True
SheetCheckBox16.Visible = True
SheetCheckBox17.Visible = True
SheetCheckBox18.Visible = True
SheetCheckBox19.Visible = True
SheetCheckBox20.Visible = True
ElseIf numsht = 21 Then
SheetCheckBox1.Visible = True
SheetCheckBox2.Visible = True
SheetCheckBox3.Visible = True
SheetCheckBox4.Visible = True
SheetCheckBox5.Visible = True
SheetCheckBox6.Visible = True
SheetCheckBox7.Visible = True
SheetCheckBox8.Visible = True
SheetCheckBox9.Visible = True
SheetCheckBox10.Visible = True
SheetCheckBox11.Visible = True
SheetCheckBox12.Visible = True
SheetCheckBox13.Visible = True
SheetCheckBox14.Visible = True
SheetCheckBox15.Visible = True
SheetCheckBox16.Visible = True
SheetCheckBox17.Visible = True
SheetCheckBox18.Visible = True
SheetCheckBox19.Visible = True
SheetCheckBox20.Visible = True
SheetCheckBox21.Visible = True
ElseIf numsht = 22 Then
SheetCheckBox1.Visible = True
SheetCheckBox2.Visible = True
SheetCheckBox3.Visible = True
SheetCheckBox4.Visible = True
SheetCheckBox5.Visible = True
SheetCheckBox6.Visible = True
SheetCheckBox7.Visible = True
SheetCheckBox8.Visible = True
SheetCheckBox9.Visible = True
SheetCheckBox10.Visible = True
SheetCheckBox11.Visible = True
SheetCheckBox12.Visible = True
SheetCheckBox13.Visible = True
SheetCheckBox14.Visible = True
SheetCheckBox15.Visible = True
SheetCheckBox16.Visible = True
SheetCheckBox17.Visible = True
SheetCheckBox18.Visible = True
SheetCheckBox19.Visible = True
SheetCheckBox20.Visible = True
SheetCheckBox21.Visible = True
SheetCheckBox22.Visible = True
ElseIf numsht = 23 Then
SheetCheckBox1.Visible = True
SheetCheckBox2.Visible = True
SheetCheckBox3.Visible = True
SheetCheckBox4.Visible = True
SheetCheckBox5.Visible = True
SheetCheckBox6.Visible = True
SheetCheckBox7.Visible = True
SheetCheckBox8.Visible = True
SheetCheckBox9.Visible = True
SheetCheckBox10.Visible = True
SheetCheckBox11.Visible = True
SheetCheckBox12.Visible = True
SheetCheckBox13.Visible = True
SheetCheckBox14.Visible = True
SheetCheckBox15.Visible = True
SheetCheckBox16.Visible = True
SheetCheckBox17.Visible = True
SheetCheckBox18.Visible = True
SheetCheckBox19.Visible = True
SheetCheckBox20.Visible = True
SheetCheckBox21.Visible = True
SheetCheckBox22.Visible = True
SheetCheckBox23.Visible = True
ElseIf numsht = 24 Then
SheetCheckBox1.Visible = True
SheetCheckBox2.Visible = True
SheetCheckBox3.Visible = True
SheetCheckBox4.Visible = True
SheetCheckBox5.Visible = True
SheetCheckBox6.Visible = True
SheetCheckBox7.Visible = True
SheetCheckBox8.Visible = True
SheetCheckBox9.Visible = True
SheetCheckBox10.Visible = True
SheetCheckBox11.Visible = True
SheetCheckBox12.Visible = True
SheetCheckBox13.Visible = True
SheetCheckBox14.Visible = True
SheetCheckBox15.Visible = True
SheetCheckBox16.Visible = True
SheetCheckBox17.Visible = True
SheetCheckBox18.Visible = True
SheetCheckBox19.Visible = True
SheetCheckBox20.Visible = True
SheetCheckBox21.Visible = True
SheetCheckBox22.Visible = True
SheetCheckBox23.Visible = True
SheetCheckBox24.Visible = True
ElseIf numsht = 25 Then
SheetCheckBox1.Visible = True
SheetCheckBox2.Visible = True
SheetCheckBox3.Visible = True
SheetCheckBox4.Visible = True
SheetCheckBox5.Visible = True
SheetCheckBox6.Visible = True
SheetCheckBox7.Visible = True
SheetCheckBox8.Visible = True
SheetCheckBox9.Visible = True
SheetCheckBox10.Visible = True
SheetCheckBox11.Visible = True
SheetCheckBox12.Visible = True
SheetCheckBox13.Visible = True
SheetCheckBox14.Visible = True
SheetCheckBox15.Visible = True
SheetCheckBox16.Visible = True
SheetCheckBox17.Visible = True
SheetCheckBox18.Visible = True
SheetCheckBox19.Visible = True
SheetCheckBox20.Visible = True
SheetCheckBox21.Visible = True
SheetCheckBox22.Visible = True
SheetCheckBox23.Visible = True
SheetCheckBox24.Visible = True
SheetCheckBox25.Visible = True
ElseIf numsht = 26 Then
SheetCheckBox1.Visible = True
SheetCheckBox2.Visible = True
SheetCheckBox3.Visible = True
SheetCheckBox4.Visible = True
SheetCheckBox5.Visible = True
SheetCheckBox6.Visible = True
SheetCheckBox7.Visible = True
SheetCheckBox8.Visible = True
SheetCheckBox9.Visible = True
SheetCheckBox10.Visible = True
SheetCheckBox11.Visible = True
SheetCheckBox12.Visible = True
SheetCheckBox13.Visible = True
SheetCheckBox14.Visible = True
SheetCheckBox15.Visible = True
SheetCheckBox16.Visible = True
SheetCheckBox17.Visible = True
SheetCheckBox18.Visible = True
SheetCheckBox19.Visible = True
SheetCheckBox20.Visible = True
SheetCheckBox21.Visible = True
SheetCheckBox22.Visible = True
SheetCheckBox23.Visible = True
SheetCheckBox24.Visible = True
SheetCheckBox25.Visible = True
SheetCheckBox26.Visible = True
ElseIf numsht = 27 Then
SheetCheckBox1.Visible = True
SheetCheckBox2.Visible = True
SheetCheckBox3.Visible = True
SheetCheckBox4.Visible = True
SheetCheckBox5.Visible = True
SheetCheckBox6.Visible = True
SheetCheckBox7.Visible = True
SheetCheckBox8.Visible = True
SheetCheckBox9.Visible = True
SheetCheckBox10.Visible = True
SheetCheckBox11.Visible = True
SheetCheckBox12.Visible = True
SheetCheckBox13.Visible = True
SheetCheckBox14.Visible = True
SheetCheckBox15.Visible = True
SheetCheckBox16.Visible = True
SheetCheckBox17.Visible = True
SheetCheckBox18.Visible = True
SheetCheckBox19.Visible = True
SheetCheckBox20.Visible = True
SheetCheckBox21.Visible = True
SheetCheckBox22.Visible = True
SheetCheckBox23.Visible = True
SheetCheckBox24.Visible = True
SheetCheckBox25.Visible = True
SheetCheckBox26.Visible = True
SheetCheckBox27.Visible = True
ElseIf numsht = 28 Then
SheetCheckBox1.Visible = True
SheetCheckBox2.Visible = True
SheetCheckBox3.Visible = True
SheetCheckBox4.Visible = True
SheetCheckBox5.Visible = True
SheetCheckBox6.Visible = True
SheetCheckBox7.Visible = True
SheetCheckBox8.Visible = True
SheetCheckBox9.Visible = True
SheetCheckBox10.Visible = True
SheetCheckBox11.Visible = True
SheetCheckBox12.Visible = True
SheetCheckBox13.Visible = True
SheetCheckBox14.Visible = True
SheetCheckBox15.Visible = True
SheetCheckBox16.Visible = True
SheetCheckBox17.Visible = True
SheetCheckBox18.Visible = True
SheetCheckBox19.Visible = True
SheetCheckBox20.Visible = True
SheetCheckBox21.Visible = True
SheetCheckBox22.Visible = True
SheetCheckBox23.Visible = True
SheetCheckBox24.Visible = True
SheetCheckBox25.Visible = True
SheetCheckBox26.Visible = True
SheetCheckBox27.Visible = True
SheetCheckBox28.Visible = True
ElseIf numsht = 29 Then
SheetCheckBox1.Visible = True
SheetCheckBox2.Visible = True
SheetCheckBox3.Visible = True
SheetCheckBox4.Visible = True
SheetCheckBox5.Visible = True
SheetCheckBox6.Visible = True
SheetCheckBox7.Visible = True
SheetCheckBox8.Visible = True
SheetCheckBox9.Visible = True
SheetCheckBox10.Visible = True
SheetCheckBox11.Visible = True
SheetCheckBox12.Visible = True
SheetCheckBox13.Visible = True
SheetCheckBox14.Visible = True
SheetCheckBox15.Visible = True
SheetCheckBox16.Visible = True
SheetCheckBox17.Visible = True
SheetCheckBox18.Visible = True
SheetCheckBox19.Visible = True
SheetCheckBox20.Visible = True
SheetCheckBox21.Visible = True
SheetCheckBox22.Visible = True
SheetCheckBox23.Visible = True
SheetCheckBox24.Visible = True
SheetCheckBox25.Visible = True
SheetCheckBox26.Visible = True
SheetCheckBox27.Visible = True
SheetCheckBox28.Visible = True
SheetCheckBox29.Visible = True
ElseIf numsht = 30 Then
SheetCheckBox1.Visible = True
SheetCheckBox2.Visible = True
SheetCheckBox3.Visible = True
SheetCheckBox4.Visible = True
SheetCheckBox5.Visible = True
SheetCheckBox6.Visible = True
SheetCheckBox7.Visible = True
SheetCheckBox8.Visible = True
SheetCheckBox9.Visible = True
SheetCheckBox10.Visible = True
SheetCheckBox11.Visible = True
SheetCheckBox12.Visible = True
SheetCheckBox13.Visible = True
SheetCheckBox14.Visible = True
SheetCheckBox15.Visible = True
SheetCheckBox16.Visible = True
SheetCheckBox17.Visible = True
SheetCheckBox18.Visible = True
SheetCheckBox19.Visible = True
SheetCheckBox20.Visible = True
SheetCheckBox21.Visible = True
SheetCheckBox22.Visible = True
SheetCheckBox23.Visible = True
SheetCheckBox24.Visible = True
SheetCheckBox25.Visible = True
SheetCheckBox26.Visible = True
SheetCheckBox27.Visible = True
SheetCheckBox28.Visible = True
SheetCheckBox29.Visible = True
SheetCheckBox30.Visible = True
Else:
MsgBox "Need more checkboxes!" & vbNewLine & "Contact Jan Wieland for more details", vbCritical
End If
'Uncheck DataCheckBoxes
SheetCheckBox1.value = False
SheetCheckBox2.value = False
SheetCheckBox3.value = False
SheetCheckBox4.value = False
SheetCheckBox5.value = False
SheetCheckBox6.value = False
SheetCheckBox7.value = False
SheetCheckBox8.value = False
SheetCheckBox9.value = False
SheetCheckBox10.value = False
SheetCheckBox11.value = False
SheetCheckBox12.value = False
SheetCheckBox13.value = False
SheetCheckBox14.value = False
SheetCheckBox15.value = False
SheetCheckBox16.value = False
SheetCheckBox17.value = False
SheetCheckBox18.value = False
SheetCheckBox19.value = False
SheetCheckBox20.value = False
SheetCheckBox21.value = False
SheetCheckBox22.value = False
SheetCheckBox23.value = False
SheetCheckBox24.value = False
SheetCheckBox25.value = False
SheetCheckBox26.value = False
SheetCheckBox27.value = False
SheetCheckBox28.value = False
SheetCheckBox29.value = False
SheetCheckBox30.value = False
End Sub
首先,我制作了一个带有5个复选框的非常简单的用户表单 然后,我在“属性”窗口中隐藏了每个复选框: 然后我将此代码放在userform的代码部分:
Private Sub UserForm_Initialize()
Dim numsht As Long
numsht = ThisWorkbook.Worksheets.Count
If numsht = 1 Then
CheckBox1.Visible = True
ElseIf numsht = 2 Then
CheckBox1.Visible = True
CheckBox2.Visible = True
ElseIf numsht = 3 Then
CheckBox1.Visible = True
CheckBox2.Visible = True
CheckBox3.Visible = True
ElseIf numsht = 4 Then
CheckBox1.Visible = True
CheckBox2.Visible = True
CheckBox3.Visible = True
CheckBox4.Visible = True
ElseIf numsht = 5 Then
CheckBox1.Visible = True
CheckBox2.Visible = True
CheckBox3.Visible = True
CheckBox4.Visible = True
CheckBox5.Visible = True
Else:
MsgBox "Need more checkboxes!" & vbNewLine & "Contact Jan Wieland for more details", vbCritical
End If
End Sub
用不同数量的纸张做实验
希望有帮助!:) 欢迎来到SO!到目前为止你试过什么?所以这不是一个代码编写服务。我知道代码编写服务并非如此。但我读了很多代码来尝试,但直到现在还没有一个是有用的。我不是VBA的常客,有一个正在运行的项目需要改进。所以这对我来说不是常识:)我理解,但你仍然需要表现出你的努力。目前,您的问题是询问代码,但没有显示任何已完成的工作或研究。所以,一旦你的问题得到回答,其他人可能会从中学习,那么这个网站就是为每个人准备的。目前,没有人会将此作为其纯代码请求来学习。编辑问题,提供你的研究和你尝试过的,然后你会看到人们会更愿意帮助你。你好,龙萨姆,你可以结束这个话题,因为斯坦布的建议我已经成功了。谢谢斯坦布。我要试试这个。然而,问题是该表是随机使用的。目前,一个项目有28项(表)。那么,有没有办法动态扩展复选框的数量?这将使代码尽可能保持干净。@JanWieland,您可以使用
。添加方法,请参阅@jan随意将其标记为“已回答”。)如果我知道怎么做,我会的:)