我试图编写一个检查输入(货币)的If语句,然后将正确的符号分配给美元金额。我的代码如下,除欧元外,每种货币都有效,只有在美元金额是字母而不是数字时才有效。我错过了一些明显的东西吗?
If Note_Currency = "" Then
Note_Denomination = "$" + Note_Denomination
ElseIf Note_Currency = "EUR" Then
Note_Denomination = "€" + Note_Denomination
ElseIf Note_Currency = "JPY" Then
Note_Denomination = "¥" + Note_Denomination
ElseIf Note_Currency = "GBP" Then
Note_Denomination = "£" + Note_Denomination
Else
Note_Denomination = "$" + Note_Denomination
End If
答案 0 :(得分:2)
使用+连接字符串和数字是个坏主意。相反,你应该使用&。
http://www.tutorialspoint.com/vba/vba_concatenation_operators.htm
答案 1 :(得分:2)
好的,所以我想出来了 - 有点儿。我在Excel中试过你的sub,同样的事情发生在我身上。使用符号和Chr(128)
只显示一个空白单元格。
我发现有用的是,如果您知道具有这些数字的范围,请将单元格的格式类型更改为文本(@
):
Range("A1:A100").NumberFormat = "@"
然后,当您运行代码时,如果您使用Note_Denomination = Chr(128) & Note_Denomination
,则会显示欧元符号。
所以,看起来原因不是代码,而是单元格格式。