Excel 禁用用户窗体上的按钮

Excel 禁用用户窗体上的按钮,excel,vba,userform,Excel,Vba,Userform,我想知道,如果电子表格中的某个单元格等于某个数字,如何禁用userForm中的某个按钮。我尝试了下面的代码,但它不起作用 Private Sub UserForm_Initialize() Label2 = Sheets("DATA").Range("AM2").Value Label4 = Sheets("DATA").Range("AO2").Value Label7 = Format(Sheets("DATA").Range("R8").Value, "Currency") If She

我想知道,如果电子表格中的某个单元格等于某个数字,如何禁用userForm中的某个按钮。我尝试了下面的代码,但它不起作用

Private Sub UserForm_Initialize()
Label2 = Sheets("DATA").Range("AM2").Value
Label4 = Sheets("DATA").Range("AO2").Value
Label7 = Format(Sheets("DATA").Range("R8").Value, "Currency")

If Sheets("DATA").Range("AL10").Value = 10 Then
ActiveSheet.Shapes("CommandButton1").Select
UserFormact_Upgrade.CommandButton1.Enabled = False

Else


End If

End Sub

您的代码应该正常工作,因为您走的是正确的道路

要测试它,只需创建一个新表单并添加此代码,您就会看到它应该可以工作。也许你在IF条款中遇到了问题

此外,在禁用形状之前,不需要选择形状;马上禁用它

Private Sub UserForm_Initialize()

    CommandButton1.Enabled = False

End Sub

您的代码应该正常工作,因为您走的是正确的道路

要测试它,只需创建一个新表单并添加此代码,您就会看到它应该可以工作。也许你在IF条款中遇到了问题

此外,在禁用形状之前,不需要选择形状;马上禁用它

Private Sub UserForm_Initialize()

    CommandButton1.Enabled = False

End Sub

设置已启用属性的正确位置是在激活事件(与显示方法相关)和非初始化事件(与加载指令相关)中。 当AL10单元格>=10时,下面的代码禁用按钮CommandButton1

        Private Sub UserForm_Activate()
           CommandButton1.Enabled = ( Sheets("DATA").Range("AL10") < 10 )
        End Sub
Private子用户表单_Activate()
CommandButton1.Enabled=(工作表(“数据”).Range(“AL10”)<10)
端接头
对于按钮,您可以在普通按钮(属性启用=False和属性可见=true)、禁用按钮(属性启用=False和属性可见=true)和不可见按钮(属性启用=False和属性可见=False)之间进行选择,在大多数情况下,它是一个更干净的界面

关于文本框,除了正常、禁用和不可见状态外,还有一个锁定状态,即启用和可见,但不能由用户编辑。(属性已锁定=True)


锁定的控件只能由VBA代码更改。例如,有人可以包含日期文本框,该文本框使用带有日历控件的二次弹出日期表单填充。

设置启用的属性的正确位置是激活事件(与显示方法关联)而不是初始化事件(与加载指令相关)。 当AL10单元格>=10时,下面的代码禁用按钮CommandButton1

        Private Sub UserForm_Activate()
           CommandButton1.Enabled = ( Sheets("DATA").Range("AL10") < 10 )
        End Sub
Private子用户表单_Activate()
CommandButton1.Enabled=(工作表(“数据”).Range(“AL10”)<10)
端接头
对于按钮,您可以在普通按钮(属性启用=False和属性可见=true)、禁用按钮(属性启用=False和属性可见=true)和不可见按钮(属性启用=False和属性可见=False)之间进行选择,在大多数情况下,它是一个更干净的界面

关于文本框,除了正常、禁用和不可见状态外,还有一个锁定状态,即启用和可见,但不能由用户编辑。(属性锁定=True)


锁定的控件只能由VBA代码更改。例如,某人可以包含日期文本框,该文本框使用带有日历控件的辅助弹出日期表单填充。

我知道这是一个旧控件,但找到了这个线程试图解决我的问题,并找到了一个此处未提及的解决方案。因此,万一有人像我一样来到这里这并没有把他们带到他们需要去的地方,我想这可能会有所帮助

我有一个userform,其中有一个名为cmdADAMFields的下拉框,我不希望启用名为FieldsSubmitButton的提交按钮,直到我从下拉框中选择了某个内容

我不得不把我的论点分成两个不同的私人sub,而不是一个更大的If-Then-Else语句

首先,我提出:

Private Sub UserForm_Activate()
If cmbADAMFields.ListIndex = -1 Then FieldsSubmitButton.Enabled = False
End Sub
然后,当我的下拉菜单的私有子菜单的值发生变化时,我写道:

Private Sub cmbADAMFields_Change()
FieldsSubmitButton.Enabled = True
End Sub

我知道这很古老,但我找到了一个解决我的问题的思路,找到了一个这里没有提到的解决方案。所以,如果有人像我一样来到这里,但这并没有让他们到达他们需要去的地方,我想这可能会有所帮助

我有一个userform,其中有一个名为cmdADAMFields的下拉框,我不希望启用名为FieldsSubmitButton的提交按钮,直到我从下拉框中选择了某个内容

我不得不把我的论点分成两个不同的私人sub,而不是一个更大的If-Then-Else语句

首先,我提出:

Private Sub UserForm_Activate()
If cmbADAMFields.ListIndex = -1 Then FieldsSubmitButton.Enabled = False
End Sub
然后,当我的下拉菜单的私有子菜单的值发生变化时,我写道:

Private Sub cmbADAMFields_Change()
FieldsSubmitButton.Enabled = True
End Sub