我想在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 =真了,在禁用了按钮 –
我输错在这里,当然它的启用 –