Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未显示欧元符号(VBA)_Vba_Excel - Fatal编程技术网

未显示欧元符号(VBA)

未显示欧元符号(VBA),vba,excel,Vba,Excel,我试图编写一个If语句,检查输入(一种货币),然后为美元金额指定正确的符号。我的代码如下,除了欧元,所有货币都有效。欧元只有在美元金额是字母而不是数字的情况下才有效。我错过了什么明显的东西吗 If Note_Currency = "" Then Note_Denomination = "$" + Note_Denomination ElseIf Note_Currency = "EUR" Then Note_Denomination = "€" + Note_Denominati

我试图编写一个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中试用了你的sub,同样的情况也发生在我身上。使用符号和
Chr(128)
仅显示一个空白单元格

我发现有效的方法是,如果您知道将包含这些数字的区域,请将单元格的格式类型更改为文本(
@
):

范围(“A1:A100”).NumberFormat=“@”

然后,当您运行代码时,如果您使用
Note\u demination=Chr(128)&Note\u demination
,则会显示欧元符号


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

好吧,我算出来了——有点。我在Excel中试用了你的sub,同样的情况也发生在我身上。使用符号和
Chr(128)
仅显示一个空白单元格

我发现有效的方法是,如果您知道将包含这些数字的区域,请将单元格的格式类型更改为文本(
@
):

范围(“A1:A100”).NumberFormat=“@”

然后,当您运行代码时,如果您使用
Note\u demination=Chr(128)&Note\u demination
,则会显示欧元符号


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

当你说它“不起作用”时,如果你一步一步地看代码,它会跳过该部分的
语句吗?或者它真的能做到,但是当它完成的时候,
Note\u面额
是不正确的吗?@BruceWayne我为我的无知道歉,我是一个初学者,主要是自学,但是你所说的“逐步通过代码”是什么意思?当我运行整个宏时,将货币输入为“EUR”,它返回正确的美元金额,不带符号。当您在VB编辑器中时,可以使用中的
F8
单步执行代码。快速检查:将EUR符号替换为like“X”,看看它是否至少在前面放了一个“X”。如果是这样的话,那么可能是符号本身。此外,我建议使用
&
来连接字符串,而不是
+
@BruceWayne Yep,一旦我将符号更改为X,它就可以工作了(对于字母和数字)。有没有办法修复这个符号,或者我应该完全放弃这个方法?谢谢你的+/&提示,我会改变它。当你说它“不起作用”时,尝试一下
Note\u demination=Chr(128)&Note\u demination
,如果你一步一步地看代码,它会跳过那部分的
语句吗?或者它真的能做到,但是当它完成的时候,
Note\u面额
是不正确的吗?@BruceWayne我为我的无知道歉,我是一个初学者,主要是自学,但是你所说的“逐步通过代码”是什么意思?当我运行整个宏时,将货币输入为“EUR”,它返回正确的美元金额,不带符号。当您在VB编辑器中时,可以使用中的
F8
单步执行代码。快速检查:将EUR符号替换为like“X”,看看它是否至少在前面放了一个“X”。如果是这样的话,那么可能是符号本身。此外,我建议使用
&
来连接字符串,而不是
+
@BruceWayne Yep,一旦我将符号更改为X,它就可以工作了(对于字母和数字)。有没有办法修复这个符号,或者我应该完全放弃这个方法?谢谢你的+/&提示,我会改变的。试试
Note\u demination=Chr(128)&Note\u demination
你真是个天才!非常感谢你!我要说的唯一一件事(如果其他人看到这个),就是我仍然必须使用
Chr(219)
,并且单元格被标记为将数字存储为文本(但我只是禁用了这个)。非常感谢。您不知道任何vba会忽略宏中的标志,是吗?我打算在多台计算机上运行此工作表,我不希望每次都禁用标记。另外,当我添加这段代码时,在宏运行之后,即使我选择了不同的单元格,也会选中其中的大部分列。只有当我滚动时它才会消失。你不知道为什么会发生这种情况/如何解决,是吗?谢谢again@1937827-你说的“忽略国旗”是什么意思?其余的代码是什么样子的?至于专栏选择,我需要看看你的代码的其余部分才能知道发生了什么。谢谢-我自己就知道了你是个天才!非常感谢你!我要说的唯一一件事(如果其他人看到这个),就是我仍然必须使用
Chr(219)
,并且单元格被标记为将数字存储为文本(但我只是禁用了这个)。非常感谢。您不知道任何vba会忽略宏中的标志,是吗?我打算在多台计算机上运行此工作表,我不希望每次都禁用标记。另外,当我添加这段代码时,在宏运行之后,即使我选择了不同的单元格,也会选中其中的大部分列。只有当我滚动时它才会消失。你不知道为什么会发生这种情况/如何解决,是吗?谢谢again@1937827-你说的“忽略国旗”是什么意思?其余的代码是什么样子的?至于专栏选择,我需要查看您的代码的其余部分,以了解发生了什么。谢谢-我自己解决了