EXCEL VBA:根据另一个单元格的值更改NUMBER 格式

EXCEL VBA:根据另一个单元格的值更改NUMBER 格式

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

相关内容