C7:K35
我想根据 Cell 中的值更改单元格区域的格式A1
。
当A1
= 1 时,数字格式应为"_-* #,##0_-;-* #,##0_-;_-* ""-""??_-;_-@_-"
当A1
<> 1 时,数字格式应为"_-$* #,##0_-;-$* #,##0_-;_-$* ""-""??_-;_-@_-"
我知道这需要使用 VBA 来完成case
,因为我之前在其他论坛上提问时也做过,但我再也找不到这个问题了。
我猜会是这样的:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
case when Range("A1").value = 1 then
Range("C7:K32").Select
Selection.NumberFormat = "_-* #,##0_-;-* #,##0_-;_-* ""-""??_-;_-@_-"
Else
Range("C7:K32").Select
Selection.NumberFormat = "_-$* #,##0_-;-$* #,##0_-;_-$* ""-""??_-;_-@_-"
End If
End Sub
答案1
Select
除了声明之外不需要做任何事情Select Case
。
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