VBA【字体替换】VBA替换微软雅黑字体为=正常中文=(word)_vba修改字体微软雅黑
项目场景:VBA 解决 word字体不生效,一直是微软雅黑
问题描述
文档字符怎么应用字体样式都是微软雅黑
原因剖析
其实不能改变的字体跟正常字体编码不一样,隶属字体库位置为“汉字字根”、“cjk偏旁部首”
。我们可以通过Alt+X快捷键查看字符代码
解决方法
方法一:Ocr识别
网络上网友说,用识别文章的方式,亲测好用。
方法二:用VBA
实际上,VBA要做的就是一个个匹配,将错误的字根Replace替换成对应的正确文字。就是这句代码
Selection.Text = charWillReplace \'如果用Selection的TypeText方法,则光标不会选中
比如:
- 第一个字根:转成文字民
- 第二个字根:转成文字门
- 第三个字根:转成文字大
然后有多少个字根要转换呢?如下:
- 选中错误文字后,查看所属的字符位置。
- 点击两个蓝框查看将来需要替换的字根列表
附上代码
Sub test0202_【字体】乱码字被替换成正常字() On Error GoTo errorHandle Dim dictionaryCharParams As Object Dim charWillReplace As String Set dictionaryCharParams = initDictionaryParams With ActiveDocument.Range.Find .ClearFormatting .Replacement.ClearFormatting .Wrap = wdFindStop .Format = False .MatchWildcards = True \'由于字根粘贴时变成乱码,【VBA录制模式官方】建议把十进制转成字符形式,牛。 .Text = \"[\"