在Excel/VBA中禁用/启用按钮

Jon*_*n V 7 excel vba excel-vba

我在VBA/Excel中尝试以下功能:

Sub function_name()
  button.enabled=false
  Call Long_Function       ' duration: 10sec
  button.enabled=true
End Sub
Run Code Online (Sandbox Code Playgroud)

出于某种原因,这个按钮禁用不起作用(它在excel工作表中保持启用状态)我尝试了DoEvents和延迟,但没有运气.有任何想法吗?谢谢!

Axe*_*per 14

以下适用于我(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
Run Code Online (Sandbox Code Playgroud)

请注意,.enabled = False不会使按钮变灰.

必须明确设置字体颜色才能使其变灰.

  • 我认为重要的是要注意,在Excel 2010中,设置`b1.Enabled = False`不会停止与单击该按钮相关的操作. (9认同)
  • 好答案!最后一句可能是在帖子的开头,我不得不两次,因为我没有读完全部!傻我:P (2认同)