作者:mobiledu2402852413 | 来源:互联网 | 2023-07-13 08:36
写VBA代码时,我们不时会遇到需要判断字符串中有没有出现汉字的情况。那么怎样判断字符串中有没有汉字呢?一个简单的办法就是使用”like”函数。比如在下例中,我们需要将包含汉字
写VBA代码时, 我们不时会遇到需要判断字符串中有没有出现汉字的情况。那么怎样判断字符串中有没有汉字呢?
一个简单的办法就是使用”like”函数。比如在下例中,我们需要将包含汉字的单元格全部清空,应该怎么处理呢?
其中的核心技巧就是使用“一-龥”来表示所有的汉字,这个表达式基本上涵盖了所有汉字。
那么相关语句就可以写成:
If cells(a,1) like “*[一-龥]*” then cells(a,1).clearcontents
其中,*是通配符,表示零个或多个字符,在这个例子中,用 like “*[一-龥]*” 表示所有包含汉字字符串的单元格
?是通配符,表示任一单一字符
#是通配符,表示任何一个数字 (0~9)
为什么“一-龥”就基本上能表示所有汉字呢?
“一-龥”需要加上通配符起作用,当加上通配符后,就得带上中括号,即*[一-龥]*,里面从前面的一到小短线后面的龥之间的任意
字符。一是ASC码最小的汉字,是19968,龥的ASC码是40869,这其间包括了绝大多数常用和不怎么常用的简繁体字,并不是
所有的,不过一般的文章而言足够用来查找文章中的任意汉字了,也有人用﨩,这个ASC码更大一些64041,不过大的这些也没
啥意义,都是基本完全不会在正常文章中出现的字。