选项按钮更改未触发宏

选项按钮更改未触发宏

我有 3 个选项按钮链接到单元格 A1,

我还有一个当单元格 A1 发生变化时触发的宏。

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, Range("A1")) Is Nothing Then
       Select Case Range("A1").Value
           Case 1
               Range("C7:K32").NumberFormat = "_-* #,##0_-;-* #,##0_-;_-* ""-""??_-;_-@_-"
           Case Else
               Range("C7:K32").NumberFormat = "_-$* #,##0_-;-$* #,##0_-;_-$* ""-""??_-;_-@_-"
        End Select
    End If

End Sub

如果我手动在 A1 中输入一个值,宏就可以正常工作,但是如果我A1使用选项按钮更改该值,宏就不会运行。

有没有办法在使用选项按钮更改 A1 的值时运行宏?

答案1

如果您使用 ActiveX 选项按钮,那么您可以为每个按钮分配代码。

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, Range("A1")) Is Nothing Then
       Select Case Range("A1").Value
           Case 1
               Range("C7:K32").NumberFormat = "_-* #,##0_-;-* #,##0_-;_-* ""-""??_-;_-@_-"
           Case Else
               Range("C7:K32").NumberFormat = "_-$* #,##0_-;-$* #,##0_-;_-$* ""-""??_-;_-@_-"
        End Select
    End If

End Sub

Private Sub OptionButton1_Click()
    Range("A1") = 1
End Sub

Private Sub OptionButton2_Click()
    Range("A1") = 2
End Sub

在此处输入图片描述

相关内容