欧元符号未显示(VBA)

问题描述 投票:0回答:3

我正在尝试编写一个 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
vba excel
3个回答
2
投票

好吧,我大概明白了。 我在 Excel 中尝试了你的子程序,同样的事情也发生在我身上。使用符号和

Chr(128)
仅显示一个空白单元格。

我发现有效的是,如果您知道包含这些数字的范围,请将单元格的格式类型更改为文本(

@
):

Range("A1:A100").NumberFormat = "@"

然后,当您运行代码时,如果您使用

Note_Denomination = Chr(128) & Note_Denomination
,则会显示欧元符号。

所以,看起来原因不是代码,而是单元格格式。


2
投票

在 VBA 中,使用 + 连接字符串和数字是一个坏主意。相反,你应该使用 &。

http://www.tutorialspoint.com/vba/vba_concatenation_operators.htm


0
投票

如果有人在几年后找到这个答案,就像我一样,请使用

chrW(128)
而不是
chr()
,这会强制使用 Unicode 字符。如果它与 Excel 期望的货币格式匹配,它仍会将单元格识别为货币。

例如:

Range("A1:A100").NumberFormat = " $" & ChrW(128) & " #,###.00";

© www.soinside.com 2019 - 2024. All rights reserved.