2011-04-05 84 views
0

我想弄清楚如何在我的用户窗体中禁用按钮,如果我的电子表格中的某个单元格等于某个数字。我尝试了下面的代码,但它不起作用。禁用用户窗体上的按钮

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 

回答

5

你的代码应该正常工作,因为你在正确的道路上。

要测试它,只需创建一个新窗体并添加此代码,就会发现它应该可以工作。也许你在IF子句中遇到了问题?

此外,您不必在禁用它之前选择形状;只需立即禁用它。

Private Sub UserForm_Initialize() 

    CommandButton1.Enabled = False 

End Sub 
0

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

 Private Sub UserForm_Activate() 
      CommandButton1.Enabled = (Sheets("DATA").Range("AL10") < 10) 
     End Sub 

对于按钮可以选择之间的正常按钮(属性启用 =假和属性可见 =真), 禁用的按钮(属性启用 =假和属性可见 =真)和不可见按钮(prope rty 已启用 =假和属性可见 = False),它在大多数情况下是一个更干净的界面。

关于文本框,除了正常残疾人无形状态,有锁定状态,即启用并可见,但不能被用户编辑。 (属性锁定 = True)

锁定的控件只能通过VBA代码进行更改。例如,某人可以包含日期文本框,它使用带Calendar控件的辅助弹出日期表单进行填充。

1

我知道这是旧的,但得到这个线程试图解决我的问题,并找到了一个解决方案,这里没有提到。所以如果有人像我一样到达这里,这并不能让他们到达需要去的地方,我认为这可能会有所帮助。

我有一个用户窗体,名为cmdADAMFields的下拉框,我不希望我的提交按钮被称为FieldsSubmitButton被启用,直到我从下拉框中选择了一些东西。

我不得不将我的论点分解成两个不同的私人潜艇与一个更大的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