2013-10-06 27 views
0

我试图把一个韩文词汇的大文件,并设置它顺利导入闪卡程序。该文件的格式是[韩文词/短语] [英文翻译] [韩文例句]。例如:写词宏 - 我该如何编写一个Find来找到一行上的下一个韩文字符?

因为我累了不知道该怎么办。

我可以编写一个宏来查找第一个英文字母,并用制表符替换它之前的空格。我通过搜索范围[a-Z]确定了第一个英文字母。之后,我想通过搜索遇到的下一个韩文字符来找到例句的开头,但是韩文字符的范围是什么?

我发现了一个关于韩文字符的unicode常见问题,它似乎暗示每个字符实际上只是单个字母的组合,而在某些类型的编程中可以看作单独的字母,但我可能会误解。这个想法是,像“식”这样的东西真的是三个字母“ㅅ”+“ㅣ”+“ㄱ”。所以我试着搜索一个字母“ㅅ”(它出现在我的输入文件中的字符数量很多)并且没有命中。这确实有可能让事情变得简单,但没有骰子。

+0

只是一个想法,作为一种解决方法你能搜索不在范围[aZ]内的空格后面的第一个字符吗? – stobin

+0

我完全尝试过这样的路线,这不是没有问题,但我也遇到过问题。首先,我打标点符号,所以我试图从搜索中排除单个标点符号。尽管输入文件有单引号(尽管在上面的示例中,请参阅“我是”),并且虽然我能够从Find中排除其他标点符号,但我昨晚在熬夜时试图逃避单引号宏,并没有我尝试过的不同方法(反斜杠,双反斜杠,使用两个单引号,用双引号括起单引号等)。 – user2031082

+0

你可以使用'ASC'函数来获取字符的Unicode值吗?请参见[MSDN](http://msdn.microsoft.com/en-us/library/aa262678%28VS.60%29.aspx)链接 –

回答

2

好,知道了 - 在这里发现的范围: http://en.wikipedia.org/wiki/Korean_language_and_computers#Hangul_in_Unicode

下面的代码在我的宏找到下一个韩语字符在Word文档中:

With Selection.Find 
    .Text = "[" & ChrW(44032) & "-" & ChrW(55203) & "]" 
    .Replacement.Text = "" 
    .Forward = True 
    .Wrap = wdFindContinue 
    .Format = False 
    .MatchCase = False 
    .MatchWholeWord = False 
    .MatchWildcards = True 
    .MatchSoundsLike = False 
    .MatchAllWordForms = False 
End With 
Selection.Find.Execute 
相关问题