VBA:USerform - 如何基于所选的某个复选框创建用户表单

时间:2017-12-31 04:31:04

标签: excel vba excel-vba

是否可以使用一些文本框和继续按钮创建Userform2?将根据另一个userfomr1中选择的值(复选框)创建Userform 2。

示例1 - 用户选择所有字段

enter image description here

将根据从Userfomr1中选择的值创建Userform2。

enter image description here

1 个答案:

答案 0 :(得分:3)

模仿这些UserForms结构以获得工作示例: Userform1 UserForm2

正如您所提到的,您不熟悉宏,请注意适当的控件名称:TextBox1,TextBox2 ... CheckBox1,CheckBox2 ...,CommandButton1_Click .... ect

因此以下代码适用于您的表单。

创建新模块并粘贴此代码:

Sub formAction()
' set them to invisible first, it can be done in control properties also.
UserForm2.TextBox1.Visible = False
UserForm2.TextBox2.Visible = False
UserForm2.TextBox3.Visible = False
UserForm2.TextBox4.Visible = False

UserForm2.TextBox4.Left = 10 'example of controls movement
UserForm2.TextBox4.Top = 10 'example of controls movement

UserForm1.Show 'fire first userform
End Sub

将其插入UserForm1代码:

Private Sub CommandButton1_Click()
    If UserForm1.CheckBox1.Value = True Then UserForm2.TextBox1.Visible = True
    If UserForm1.CheckBox2.Value = True Then UserForm2.TextBox2.Visible = True
    If UserForm1.CheckBox3.Value = True Then UserForm2.TextBox3.Visible = True
    If UserForm1.CheckBox4.Value = True Then UserForm2.TextBox4.Visible = True
    UserForm2.Show

End Sub

您还可以根据用户选择的选项来操纵控件的尺寸和用户自身形状,以确定合适的尺寸。

为了这个例子,我没有迭代这些控件,你可能希望这些控件在代码方面更有效率。