Word 2016 VBA宏问题:无法按Courier New字体查找替换文本
Word VBA查找指定字体文本失败的解决方法
你的宏无法生效的核心原因是未启用格式查找功能,Word的Find对象默认忽略格式设置,必须显式开启.Format = True,否则你设置的.Font.Name不会被纳入查找条件。
修正后的代码
Sub test() Dim selRange As Range Set selRange = Selection.Range With selRange.Find .ClearFormatting .Replacement.ClearFormatting .Text = "C" .Format = True ' 开启格式查找,这是关键 .Font.Name = "Courier New" Debug.Print .Text & " Font: " & .Font.Name .Replacement.Text = "G" .Execute Replace:=wdReplaceAll Debug.Print .Found End With End Sub
关键说明
.Format = True:必须开启该属性,告诉Word要基于格式进行查找匹配,否则字体等格式设置不会生效。- 修正后,宏会准确识别选中内容中Courier New字体的"C",将其替换为"G",而Arial字体的"C"不会被修改。
- 此时Debug输出会显示
C Font: Courier New,.Found也会返回True,符合预期。
内容的提问来源于stack exchange,提问作者user2605793
相关产品推荐
相关产品推荐

