我创建了一个包含两个复选框的用户表单。我希望能够根据每个方框是选中还是取消选中来执行不同的操作。然而,似乎无论我做什么,它总是告诉我复选框的原始值(假和假)。这是附加到单击CommandButton1:
的代码Private Sub CommandButton1_Click()
ReadData
End Sub
这里的ReadData:
Sub ReadData()
Dim myForm As UserForm
Set myForm = UserForms.Add("ComplaintEntryForm")
Debug.Print (myForm!CheckBox1.Name)
Debug.Print (myForm!CheckBox1.Value)
Debug.Print (myForm!CheckBox2.Name)
Debug.Print (myForm!CheckBox2.Value)
End Sub
无论如何检查框,立即窗口始终显示:
VBA.UserForms.Add("ComplaintEntryForm").Show
CheckBox1
False
CheckBox2
False
我有整个操作的截图,但它不会让我上传,因为我是新用户。
答案 0 :(得分:1)
尝试使用此方法加载并显示表单(这在普通模块中):
Sub main()
Dim myForm As ComplaintEntryForm
Set myForm = New ComplaintEntryForm
myForm.Show
Set myForm = Nothing
End Sub
在UserForm自己的模块中,添加以下内容:
Private Sub CheckBox1_Change()
readData
End Sub
Private Sub CheckBox2_Change()
readData
End Sub
Private Sub UserForm_Initialize()
Me.CheckBox1.Value = True
Me.CheckBox2.Value = False
End Sub
Private Sub readData()
Debug.Print Me.CheckBox1.Name
Debug.Print Me.CheckBox1.Value
Debug.Print Me.CheckBox2.Name
Debug.Print Me.CheckBox2.Value
End Sub
我已将两个复选框初始化为Initialize
事件中的特定值。这意味着我们确定表单将从