EXCEL VBA: изменение форматирования ЧИСЛА на основе значения другой ячейки

EXCEL VBA: изменение форматирования ЧИСЛА на основе значения другой ячейки

Я хочу изменить форматирование диапазона ячеек C7:K35на основе значения в ячейке 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

Связанный контент