对于文字工作者、汉语言研究行业,他们都需要经常研究汉字。
谈起用vba代码生成汉字,就需要先介绍字符的编码。
字符的编码内容繁多,三天三夜都讲不完,这里简单介绍下。
一个字符要在计算机中显示出来,需要用二进制存储。
为了让不同电脑,不同的语言都能够识别这个字符,存储的二进制值一定要是唯一的,也就是这个字符的编码要是唯一的,不然就会出现乱码。
过去有过很多种字符的编码方式,都没有做到字符的编码唯一化,直到unicode编码的出现。
它让全世界的字符都同意采用一种编码方式,让每个字符都对应唯一的一个二进制编码。
这样就可以在不同国家之间流通,从而不会导致乱码。
通过查unicode编码可以获悉基本汉字的unicode编码范围是4E00-9FA5,在这个范围内包含了20902个汉字。
其中4E00、9FA5都是16进制,对应的10进制值是19968、40869
有了这些知识,在vba中有个chrw函数可以将对应的unicode编码转成字符,代码如下:
Sub 批量生成常见的汉字() j = 1 i1 = 19968 i2 = 40869 For i = i1 To i2 Cells(j, "a") = VBA.ChrW(i) j = j + 1 Next i End Sub
生成的汉字如下:
有了这些知识,我们还可以利用这个随机生成汉字,判断字符中是否含有汉字。
因为4E00、9FA5分别对应的汉字是一、龥,所以还可以用下面的代码判断字符串中是否含有汉字:
Sub 判断字符串中是否含有汉字() str1 = "asdflsdf你kjasdlfkj我" If str1 Like "*[一-龥]*" Then MsgBox "含有汉字" End If End Sub
有没有办法获取汉字的笔画数