EXCEL VBA:根據另一個儲存格的值變更數字格式

EXCEL VBA:根據另一個儲存格的值變更數字格式

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

相關內容