我有 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