Ich möchte die Formatierung eines Zellbereichs C7:K35
basierend auf dem Wert in „Zelle“ ändern A1
.
Wenn A1
= 1, sollte das Zahlenformat sein"_-* #,##0_-;-* #,##0_-;_-* ""-""??_-;_-@_-"
Wenn A1
<> 1, sollte das Zahlenformat"_-$* #,##0_-;-$* #,##0_-;_-$* ""-""??_-;_-@_-"
Ich weiß, dass dies in VBA erfolgen muss case
, da ich dies bereits zuvor getan habe, als ich in einem anderen Forum eine Frage gestellt habe, aber ich kann die Frage nicht mehr finden.
Ich vermute, es wäre ungefähr so:
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
Antwort1
Select
Außer der Aussage ist nichts weiter nötig 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