这真的让我很烦,因为它的工作方式似乎很不合逻辑。
我有一个宏来使用一些代码将单元格格式化为货币来获取货币符号。
这是涉及的代码:
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,所以它可能默认为 £-sign,但为什么呢?)
非常感谢任何帮助。