我想在VBA/Excel中有以下功能:禁用/啓用在Excel/VBA按鈕
Sub function_name()
button.enabled=false
Call Long_Function ' duration: 10sec
button.enabled=true
End Sub
出於某種原因,該按鈕禁用不起作用(它停留在了Excel工作表啓用) 我試着嘗試DoEvents和延遲,但沒有運氣。 任何想法? 謝謝!
我想在VBA/Excel中有以下功能:禁用/啓用在Excel/VBA按鈕
Sub function_name()
button.enabled=false
Call Long_Function ' duration: 10sec
button.enabled=true
End Sub
出於某種原因,該按鈕禁用不起作用(它停留在了Excel工作表啓用) 我試着嘗試DoEvents和延遲,但沒有運氣。 任何想法? 謝謝!
我下面的作品(Excel 2010中)
Dim b1 As Button
Set b1 = ActiveSheet.Buttons("Button 1")
b1.Font.ColorIndex = 15
b1.Enabled = False
Application.Cursor = xlWait
Call aLongAction
b1.Enabled = True
b1.Font.ColorIndex = 1
Application.Cursor = xlDefault
注意
.enabled = False
不會變灰的按鈕。
必須明確設置字體顏色以使其變成灰色。
很好的答案!最後一句話可能在帖子的開頭,我不得不前來兩次,因爲我沒有讀完它的全部內容!愚蠢的我:P – ForceMagic
我認爲值得注意的是,在Excel 2010中,設置'b1.Enabled = False'並不會停止與該按鈕相關的操作,如果單擊它,就會發生。 –
...我不知道,如果你正在使用的ActiveX按鈕或沒有,但是當我插入一個ActiveX按鈕到工作表Sheet1在Excel中稱爲CommandButton1的,下面的代碼工作正常:
Sub test()
Sheets(1).CommandButton1.Enabled = False
End Sub
希望這有助於...
這個完美的作品,我認爲這與「屏幕刷新」做或而'長功能'正在運行 –
這是什麼iDevelop是想說Enabled Property
所以你一直使用逸岸enabled
,怎麼把你最初的職位是enable
..
你可以嘗試以下方法:
Sub disenable()
sheets(1).button1.enabled=false
DoEvents
Application.ScreenUpdating = True
For i = 1 To 10
Application.Wait (Now + TimeValue("0:00:1"))
Next i
sheets(1).button1.enabled = False
End Sub
@Jonathan似乎你的等待函數似乎沒有拉動想要的'觸發器'來改變按鈕屬性。所以請嘗試一下。 – bonCodigo
我發現這在線上,但這並沒有辦法。我認爲這「觸發」的確是問題。如果我在我的功能之後休息,按鈕確實無效。 –
太好了!!!它與一個新的ActiveX按鈕的工作,容易
Dim b1 As Button
Set b1 = ActiveSheet.Buttons("Button 1")
b1.Enabled = False
這是爲我工作解決了我一天的小問題(的Excel 2016),分配一個控制按鈕,你和你所有的設置。
Sub deactivate_buttons()
ActiveSheet.Shapes.Item("CommandButton1").ControlFormat.Enabled = False
End Sub
它改變了「已啓用」屬性中的ActiveX按鈕屬性框爲False,該按鈕變爲無效和灰色。
它使* d * –
當我評論button.enabled =真了,在禁用了按鈕 –
我輸錯在這裏,當然它的啓用 –