VBA中的启用或禁用按钮
我必须根据某些条件创建此用户表单 我希望仅当 用户选择复选标记并选择选项A或选项B,然后单击文本按钮, 仅当满足所有必要的复选标记、选项按钮和文本按钮时,才会激活“确定”按钮以单击 这是用户表单 我试着用这个代码,但OK按钮激活,如果做任何一个操作VBA中的启用或禁用按钮,vba,catia,Vba,Catia,我必须根据某些条件创建此用户表单 我希望仅当 用户选择复选标记并选择选项A或选项B,然后单击文本按钮, 仅当满足所有必要的复选标记、选项按钮和文本按钮时,才会激活“确定”按钮以单击 这是用户表单 我试着用这个代码,但OK按钮激活,如果做任何一个操作 Option Explicit Private Sub CancelBtn_Click() Unload Me End Sub Private Sub UserForm_Initialize() OkBtn.E
Option Explicit
Private Sub CancelBtn_Click()
Unload Me
End Sub
Private Sub UserForm_Initialize()
OkBtn.Enabled = False
End Sub
Private Sub Option1_Click()
If Option1.Enabled = True Then
OkBtn.Enabled = True
End If
End Sub
Private Sub CheckBox1_Click()
If CheckBox1.Enabled = True Then
OkBtn.Enabled = True
End If
End Sub
Private Sub TextEntry_Change()
If TextEntry.Enabled = False Then
OkBtn.Enabled = False
Else: TextEntry.Enabled = True
OkBtn.Enabled = True
End If
End Sub
Private Sub TextBtn_Click()
TextEntry.Text = "TEXT"
End Sub
Private Sub OkBtn_Click()
MsgBox " i am enabled"
End Sub
此代码不起作用
如何修复此问题将此代码合并到您的表单中:
Public TextPressed As Boolean
Private Sub Option1_Click()
Call EnableOKBtn
End Sub
Private Sub Option2_Click()
Call EnableOKBtn
End Sub
Private Sub TextBtn_Click()
Me.TextEntry.Text = "TEXT"
TextPressed = True
Call EnableOKBtn
End Sub
Sub EnableOKBtn()
If TextPressed = True Then
If Me.Option1 = True Or Me.Option2 = True Then
Me.OKBtn.Enabled = True
End If
End If
End Sub
基本上,它只是使用一个公共布尔值来判断文本按钮是否被按下。发生这种情况时,值将更改为true。然后调用单独的子项“EnableOKBtn”,该子项检查选项按钮中的任何一个是否也为true。如果其中一个选项为true且公共布尔值为true,则会启用“确定”按钮。只需在属性中默认禁用ok按钮。这样,您就不必在初始化事件中设置它
制作一个函数,用于检查所有条件并启用/禁用按钮,并从所有
单击事件句柄调用它。非常感谢Simon,你的代码正常工作如果你的问题都解决了,如果你能检查答案旁边的勾号图标,让每个人都能看到这个问题解决了,那就太好了。谢谢很高兴它起作用了。