Sformatuj komórkę jako dowolną walutę bez względu na ustawienia regionalne, używając VBA

To naprawdę mnie wkurza, ponieważ wydaje się nielogiczne, jak to działa.

Mam makro do formatowania komórki jako waluty przy użyciu trochę kodu, aby uzyskać symbol waluty.

Oto zaangażowany kod:

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 jest obiektem słownika z symbolami waluty zdefiniowanymi jako łańcuchy. Na przykład.reportConstants("USD") = "$". Jest to zdefiniowane wcześniej w makrze.

Po uruchomieniu makra pobiera kod ISO i powinien następnie sformatować komórkę za pomocą odpowiedniego symbolu waluty.

Kiedy uruchamiam go w jednym przypadku, kod ISO to „USD” - taksym jest zdefiniowany jako"$" - ale nadal formatuje komórkę za pomocą znaku funta (£). Kiedy jadebug.print formatowany ciąg komórek, który pokazuje$#,##0;($#,##0) tak długo, jak mam poprawną składnię, powinien użyć znaku dolara w komórce. Ale zamiast tego używa znaku £. (Używam wersji excel w Wielkiej Brytanii, więc może to być domyślne dla £ -sign, ale dlaczego?)

Każda pomoc bardzo doceniana.

questionAnswers(2)

yourAnswerToTheQuestion