从字符串中删除中文字符(vba)

时间:2012-05-22 21:34:19

标签: regex vba ms-office

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

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

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

2 个答案:

答案 0 :(得分:6)

您可以使用Regexp去除中文unicode字符

Wikipedia列出了以下相关字符

enter image description here

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的字符串示例

答案 1 :(得分:0)

你必须使用ChrW$()

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

{1}}在Unicode上可用(感谢上帝)CJK代码(中文,日文和韩文)。请参阅this以了解角色范围。

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

还有一个很好的解释,甚至是翻译字符串here

的程序