【问题标题】:How to keep diacritical marks when sending vba string to excel/outlook?将 vba 字符串发送到 excel/outlook 时如何保留变音符号?
【发布时间】:2016-09-21 11:59:32
【问题描述】:

我想听听您对这个问题的看法。每次我想将包含我的母语变音标记的 vba 字符串发送到 Excel 或 Outlook 时,它都会返回给我。

我已经更改了 vba 编辑器上的字体,因此它在代码中显示了正确的标记,并且在工作表/outlook 消息中手动输入这些标记时也可以正常工作。执行宏时会出现问题,就像办公室错误地编码了 vba 发送到程序的操作一样。

示例: 我可以在单元格中输入“Ł”字母。

我也可以输入编辑器:

Sub example()
Range("A1").Value = "Ł"
End Sub

但在执行宏时,范围 A1 显示“£”。

你知道问题出在哪里吗?

顺便说一句,当我将代码从 vba 复制到此窗口时,也发生了同样的情况。 (代码中的“Ł”已转换为“£”。

非常感谢! 塞巴斯蒂安。

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    如果您知道要放置在单元格中的字符的 Unicode 值,请使用 ChrW 函数,例如对于带有变音符号的 A:

    ActiveSheet.Cells(1, 1).Value = ChrW(&H00c4)
    

    请注意,函数的输入是十六进制的。对于您的角色,您想尝试查找 Unicode 值并在其前面加上 &H 以让 VBA 知道您正在传递一个十六进制值。

    【讨论】:

    • 谢谢罗宾。它在单数出现的情况下绝对有用,但我有点希望有一些方法,因为当发送一些长字符串时,比如消息体,编辑所有内容并用 unicode 替换它真的很痛苦。特别是当我需要在不同的句子中频繁使用那些带有变音字母的字符串时。
    • 不幸的是,它似乎不起作用...尝试了不同的配置,但不要认为这可能会提供解决方案。
    猜你喜欢
    • 1970-01-01
    • 2019-09-17
    • 1970-01-01
    • 2016-06-26
    • 2022-01-11
    • 2010-10-06
    • 2018-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多