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