【问题标题】:Need macro or code in excel to replace Special ASCII characters with English alplabets需要excel中的宏或代码用英文字母替换特殊的ASCII字符
【发布时间】:2016-10-20 13:02:39
【问题描述】:

能否请您提供 Excel 中的宏或代码,以将特殊 ASCII 字符替换为字母表。

例如,对于 À、Á、Â.. 我需要 Alphabet 作为 A.. 以及对于 ß、Ɓ、Ƅ.. 我需要 Alphabet 作为 B.

我可以用正确的英文字母字符替换这些特殊字符吗?

【问题讨论】:

  • 虽然它不是 VBA 解决方案,但this SO answer 描述了该过程。基本上“[t]he 方法使用 String.Normalize 将输入字符串拆分为组成字形(基本上将“基本”字符与变音符号分开),然后扫描结果并仅保留基本字符。这有点复杂,但是真的,你在看一个复杂的问题。”另请查看How to replace accented characters...
  • 顺便说一句,第一个 B 是 beta 还是 eszett - 即德国双 S?

标签: excel vba


【解决方案1】:

假设数据在名为 Data 的工作表中。

在一个名为Sheet1 的单独工作表中,我们放置了一个小的独立翻译表。我从 K1 单元格开始表格:

该表给出了我们要替换的每个字符的代码和替换字符代码。

然后我们运行这个简短的宏来执行替换:

Sub FixAlphabets()
    Dim i As Long
    ary = Sheets("Sheet1").Range("K1").CurrentRegion
    For i = LBound(ary, 1) To UBound(ary, 1)
        Sheets("Data").Cells.Replace what:=ChrW(ary(i, 1)), replacement:=ChrW(ary(i, 2))
    Next i
End Sub

【讨论】:

    【解决方案2】:

    由于 ß 不等同于 B,因此如果不对每个可能的更改进行编码,将很难编写代码

    您可以编写查找和替换的所有可能性。

    例如选择整个工作表然后查找和替换

    Cells.Select
    ActiveCell.Replace What:="À", Replacement:="A"
    ActiveCell.Replace What:="Á", Replacement:="A"
    ActiveCell.Replace What:="Â", Replacement:="A"
    

    等等,通过你会遇到的任何变化。

    【讨论】:

      猜你喜欢
      • 2018-11-13
      • 1970-01-01
      • 1970-01-01
      • 2022-11-10
      • 1970-01-01
      • 1970-01-01
      • 2021-12-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多