Отформатируйте ячейку как произвольную валюту независимо от локали, используя 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, так что она может быть по умолчанию с символом £, но почему?)
Любая помощь с благодарностью.