VBA如何判断字符串中有没有汉字

      写VBA代码时, 我们不时会遇到需要判断字符串中有没有出现汉字的情况。那么怎样判断字符串中有没有汉字呢?

一个简单的办法就是使用"like”函数。比如在下例中,我们需要将包含汉字的单元格全部清空,应该怎么处理呢?

     其中的核心技巧就是使用“一-龥”来表示所有的汉字,这个表达式基本上涵盖了所有汉字。

     那么相关语句就可以写成:

    If cells(a,1) like "*[一-龥]*" then cells(a,1).clearcontents

其中,*是通配符,表示零个或多个字符,在这个例子中,用 like "*[一-龥]*" 表示所有包含汉字字符串的单元格

           ?是通配符,表示任一单一字符

           #是通配符,表示任何一个数字 (0~9)

为什么“一-龥”就基本上能表示所有汉字呢?

“一-龥”需要加上通配符起作用,当加上通配符后,就得带上中括号,即*[一-龥]*,里面从前面的一到小短线后面的龥之间的任意

字符。一是ASC码最小的汉字,是19968,龥的ASC码是40869,这其间包括了绝大多数常用和不怎么常用的简繁体字,并不是

所有的,不过一般的文章而言足够用来查找文章中的任意汉字了,也有人用﨩,这个ASC码更大一些64041,不过大的这些也没

啥意义,都是基本完全不会在正常文章中出现的字。

猜你喜欢

转载自blog.csdn.net/weixin_42285440/article/details/87596573