我有一个用户表单。
我希望只有当用户选择选中标记、选择OPTIONA或OPTIONB并单击文本按钮时才启用OK按钮。
用户型

我尝试了这段代码,但是如果我执行任何一个操作,OK按钮就会激活。
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发布于 2021-05-14 08:27:11
将此代码合并到表单中:
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,则启用“确定”按钮。只需在默认情况下禁用属性中的“确定”按钮即可。这样,您就不必在初始化事件中设置它。

https://stackoverflow.com/questions/67530284
复制相似问题