VBA:首次单击后在Excel中禁用按钮

时间:2017-12-05 23:23:09

标签: excel vba excel-vba

我试图在用户点击它后禁用放在我的sheet1上的按钮。 我经历了几个旧的Stackoverflow answers,但是他的工作符合我的期望。

代码:

Sub Button2_Click()

    Call FindADate

    Dim myshape As Shape: Set myshape = ThisWorkbook.Worksheets("Sheet1").Shapes("Button 2")
    With myshape
        .ControlFormat.Enabled = False           '---> Disable the button
        .TextFrame.Characters.Font.ColorIndex = 15 '---> Grey out button label
    End With
End Sub

它实际上是灰色的按钮,让人感觉按钮被禁用但是用户可以反复点击它并运行我的代码。

请让我知道一个解决方案,在点击一下后按钮被禁用,只有关闭并重新打开excel后,该按钮才会再次激活。 (我正在使用MS Office professional Plus 2013)

提前致谢。

2 个答案:

答案 0 :(得分:2)

Option Explicit

Sub Button2_Click()
    Static vDisable As Variant
    If IsEmpty(vDisable) Then

        Call FindADate

        Dim myshape As Shape: Set myshape = ThisWorkbook.Worksheets("Sheet1").Shapes("Button 2")
        With myshape
            .ControlFormat.Enabled = False           '---> Disable the button
            .TextFrame.Characters.Font.ColorIndex = 15 '---> Grey out button label
        End With
        vDisable = True
    End If
End Sub

答案 1 :(得分:0)

在Dim line之后写道:

if myshape.TextFrame.Characters.Font.ColorIndex = 15 then exit sub

应该够了