1

我正在使用 Microsoft Project VBA 将我的活动名称从英文翻译成中文。

我的问题是我在一些英文活动名称中嵌入了一些中文翻译。我想在将字符串传递给 Microsoft Translator 之前去掉汉字。

关于我如何做到这一点的任何想法?

4

2 回答 2

7

您可以使用 aRegexp来剥离中文 unicode 字符

维基百科列出了下面的相关字符

在此处输入图像描述

Sub Test()
Dim myString as String
myString = "This is my string with a " & ChrW$(&H6C49) & " in it."
Dim objRegex As Object
Set objRegex = CreateObject("vbscript.regexp")
With objRegex
    .Global = True
    .Pattern = "[\u4E00-\u9FFF\u6300-\u77FF\u7800-\u8CFF\u8D00-\u9FFF]+"
    MsgBox .Replace(myString, vbNullString)
End With
End Sub

所以这个正则表达式将去掉这些范围。我使用了 aldo.roman.nurena 的字符串示例

于 2012-05-23T10:32:34.607 回答
0

你必须这样使用ChrW$()

MyString = "This is my string with a " & ChrW$(&H6C49) & " in it."

Unicode上H6C49可以使用(感谢上帝)作为 CJK 代码(中文、日文和韩文)。看到这个来看看字符范围。

因此,您必须检查字符 Unicode 代码,然后比较它是否已经在 CJK 范围内,以便翻译它。

这里也有一个很好的解释,甚至还有一个翻译字符串的程序

于 2012-05-22T22:13:42.767 回答