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.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage