2012-05-22 86 views
1

我正在使用Microsoft Project VBA將我的活動名稱從英語翻譯爲中文。從字符串中刪除中文字符(vba)

我的問題是我有一些中文翻譯嵌入在一些英文活動名稱中。在將字符串傳遞給Microsoft Translator之前,我想刪除中文字符。

有關我如何做到這一點的任何想法?

回答

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 

所以這個正則表達式w虐待這些範圍。我已經使用aldo.roman.nurena的字符串示例

+0

爲什麼不簡單.Pattern =「[\ u4E00- \ u9FFF] +」? – Argut

0

你必須使用ChrW$()就象這樣:

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

H6C49是可用的(感謝上帝爲)上的Unicode中日韓碼(中國,日本和韓國)。看this看看人物的範圍。

因此,您必須檢查字符的Unicode代碼,然後比較它是否已經在CJK範圍以便翻譯它。

也有一個很好的解釋,甚至一個程序來轉換字符串here