如何在 Visual Basic 编辑器中键入 Unicode 货币字符

Posted

技术标签:

【中文标题】如何在 Visual Basic 编辑器中键入 Unicode 货币字符【英文标题】:How to type Unicode currency character in Visual Basic Editor 【发布时间】:2021-08-18 14:39:39 【问题描述】:

有一个项目要求,我们需要检查一个单元格的货币类型。

我在这个论坛 (How to check if cell is formatted as Currency?) 遇到了类似的问题。它解释了如何为 $ 符号执行此操作。但我无法在 Visual Basic 编辑器中将 $ 符号替换为其他货币符号(例如印度卢比、欧元等)。要在 VBE 中使用其他符号,我尝试了以下方法:

使用 Insert->Symbol 选项在 Excel 中插入符号。 在 VBE 中复制粘贴的符号。

但在 VBE 中粘贴为?

请帮我在 VBE 中有货币符号。如果上述方法不可行,请提出一种识别单元格货币类型的方法。

【问题讨论】:

相关:下面答案中的方法不能在const中使用。请参阅excel - Unicode string literals in VBA - Stack Overflow ___________________________________________________________________________________________ 其他一些东西(MsgBox,即时窗口 -- Debug.Print)不支持 Unicode -- 请参阅 ***.com/questions/55210315 和 ***.com/questions/23810324 This is a tool that implements the answer below. Paste the string in the "input" box then press ctrl+enter. 注意非BMP字符需要ChrW这两个代理,见excel - Get Unicode characters with charcode values greater hex FFFF - Stack Overflow 【参考方案1】:

VBA 编辑器不是 Unicode。

为了在其中包含Unicode字符,您需要使用ChrW$,例如

Dim Rupee As String
Rupee = ChrW$(&h20A8&)

另见Unicode string literals in VBA。

【讨论】:

您能解释一下为什么这似乎不是输入 Unicode 字符的通用答案吗?在我的机器上,这适用于 Rs 符号,但后来我尝试了“杂项技术”块中的 23D1“韵律短”,而 Word(NB Word 2007)产生了一个愚蠢的“不能代表这个”框。跨度> @mikerodent 你有包含这个字符的字体吗? 啊,现在明白了……是的,像“MS Mincho”这样的字体能够产生正确的字符。所以这似乎是一个问题,什么字体是和不能够......【参考方案2】:

我有一个改进的答案版本...使用以下代码选择印度卢比符号,格式为千亿格式,与百万格式的区域设置无关。

Dim rs As String
rs = ChrW$(&H20B9&)
Selection.NumberFormat = "[>=10000000][$" & rs & "-ta-IN] ##\,##\,##\,##0.00;[>=100000][$" & rs & "-ta-IN] ##\,##\,##0.00;[$" & rs & "-ta-IN] ##,##0.00"

希望这会有所帮助。

【讨论】:

虽然这段代码本身可能对某人有用,但它与问题无关。

以上是关于如何在 Visual Basic 编辑器中键入 Unicode 货币字符的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Visual Studio 2017在Windows窗体应用程序中查看和编辑Visual Basic Power Pack形状?

如何在 Visual Basic 6 中对齐 RichEdit 粘贴对象位置?

VB,Visual Basic如何修改代码文本大小和字体

如何在 Visual Basic .NET 中找到默认音频设备?

在编辑器中键入时 Visual Studio 崩溃

如何在此 Access-SQL server-Visual Basic 6 (ADO) 表单中不包含重复元素(主详细信息)