Отформатируйте ячейку как произвольную валюту независимо от локали, используя VBA

Это действительно беспокоит меня, так как это кажется довольно нелогичным, как это работает.

У меня есть макрос для форматирования ячейки в качестве валюты, используя немного кода для получения символа валюты.

Вот этот код:

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 является словарным объектом с символами валюты, определенными как строки. Например.reportConstants("USD") = "$", Это определено ранее в макросе.

Когда макрос выполняется, он получает код ISO и должен затем отформатировать ячейку с соответствующим символом валюты.

Когда я запускаю его в одном случае, ISO-код - «USD» - такsym определяется как"$" - но он все еще форматирует ячейку со знаком фунта (£). Когда яdebug.print строка формата ячейки, которую он показывает$#,##0;($#,##0) поэтому, пока я правильно понял синтаксис, в ячейке должен использоваться знак доллара. Но вместо этого он использует знак £. (Я использую британскую версию Excel, так что она может быть по умолчанию с символом £, но почему?)

Любая помощь с благодарностью.

Ответы на вопрос(2)

Ваш ответ на вопрос