gpt4 book ai didi

excel - Excel VBA 是否将字符 ChrW(&H1D48) 解释为上标 d?

转载 作者:行者123 更新时间:2023-12-04 20:30:46 24 4
gpt4 key购买 nike

我最近从 Excel for Mac 2011 升级到 Excel for Mac 2016 并发现了一个错误。我想了解此问题是否特定于 VBA Excel for Mac 2016,或者是否发生在其他计算机上。

Dim gg As Range
Set gg = Range("a1:s16000")
gg.Replace What:=ChrW(&H1D48), Replacement:="|d", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False

此代码将正确更改 heyᵈ进入 hey|d .但它会错误地更改 dude进入 |du|de这不应该发生,因为 ChrW(&H1D48)不是正态 d 而是上标 d。我在 Excel for Mac 2011 中没有这个问题,但只有 Excel for Mac 2016,我想知道其他人是否遇到同样的问题。

最佳答案

Excel 试图通过不区分大小写来帮助您。

虽然英文字母可能只有成对的匹配字符(即 Dd ),但存在的字符在其他语言中可能被认为是等效的字符集。

对于你的角色:d = D = ᵈ = ⅆ
一个更常见的例子(无论如何我住的地方)是E = e = É = é。 .

您应该能够通过更改 MatchCase := True 使搜索不区分大小写来避免此问题。 .

另见 this information关于EXACT比较字符串的函数。
Option Compare
另一种选择是在模块级别声明您的敏感度,使用 Option Compare陈述:

句法:
Option Compare { Binary|Text|Database }

如果使用,Option Compare语句必须出现在模块中的任何过程之前。 Option Compare语句指定 字符串比较法 ( BinaryTextDatabase )用于模块。如果模块不包含 Option Compare声明,默认 文字比较方法是**Binary** .

  • Option Compare Binary 根据从字符的内部二进制表示派生的排序顺序导致字符串比较。在 Microsoft Windows 中,排序顺序由代码页确定。以下示例显示了典型的二进制排序顺序:

    A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø 
  • Option Compare Text 根据系统区域设置确定的不区分大小写的文本排序顺序进行字符串比较。当使用 Option Compare Text 对相同字符进行排序时,产生以下文本排序顺序:

    (A=a) < ( À=à) < (B=b) < (E=e) < (Ê=ê) < (Z=z) < (Ø=ø) 


  • (参见 source 了解更多信息。)

    关于excel - Excel VBA 是否将字符 ChrW(&H1D48) 解释为上标 d?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51343918/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com