2011-04-05 116 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 
相關問題