Strip Chinese Characters from a string (vba)

2020-03-07 06:07发布

I am using Microsoft Project VBA to translate my activity names from English to Chinese.

My problem is I have some Chinese translations embedded in some of the English activity names. I want to strip out the Chinese characters before passing the string to Microsoft Translator.

Any ideas as to how I can do that?

2条回答
狗以群分
2楼-- · 2020-03-07 06:45

You have to use ChrW$() as this:

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

The H6C49 is available (thanks God for that) on Unicode as CJK codes (Chinese, Japanese and Korean). See this to take a look of the characters range.

So, you have to check the character Unicode code and then compare if it is already on the CJK range so as to translate it or not.

There is also a good explanation and even a program to translate strings here

查看更多
迷人小祖宗
3楼-- · 2020-03-07 06:49

You can use a Regexp to strip the Chinese unicode characters

Wikipedia lists the relevant characters below

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

So this regexp will strip out these ranges. I have used aldo.roman.nurena's string example

查看更多
登录 后发表回答