Formatieren Sie eine Zelle unabhängig vom Gebietsschema mit VBA als beliebige Währung
Das nervt mich wirklich, denn es scheint ziemlich unlogisch, wie es funktioniert.
Ich habe ein Makro, um eine Zelle als Währung zu formatieren, indem ich ein bisschen Code verwende, um das Währungssymbol zu erhalten.
Hier ist der Code beteiligt:
Dim sym As String
sym = reportConstants(ISOcode)
'Just use the ISO code if there isn't a symbol available
If sym = "" Then
sym = ISOcode
End If
With range(.Offset(0, 3), .Offset(3, 3))
.NumberFormat = sym & "#,##0;(" & sym & "#,##0)"
Debug.Print sym & "#,##0;(" & sym & "#,##0)"
End With
reportConstants
ist ein Dictionary-Objekt mit Währungssymbolen, die als Zeichenfolgen definiert sind. Z.B.reportConstants("USD") = "$"
. Dies ist weiter oben im Makro definiert.
Wenn das Makro ausgeführt wird, erhält es den ISO-Code und sollte dann die Zelle mit dem entsprechenden Währungssymbol formatieren.
Wenn ich es in einer Instanz laufen lasse, ist der ISO-Code "USD" - alsosym
ist definiert als"$"
- Die Zelle wird jedoch weiterhin mit einem Pfundzeichen (£) formatiert. Wenn ichdebug.print
Das Format der angezeigten Zellenzeichenfolge$#,##0;($#,##0)
Solange meine Syntax korrekt ist, sollte in der Zelle ein Dollarzeichen verwendet werden. Stattdessen wird ein £ -Zeichen verwendet. (Ich verwende eine britische Version von Excel, daher wird möglicherweise standardmäßig £ -sign verwendet, aber warum?)
Jede Hilfe sehr geschätzt.