如何使用Word VBA查找包含两种字号的混合字号单词?
Word VBA代码:查找包含两种字号的单词
下面的VBA代码可以帮你找出文档中包含两种及以上不同字号的单词,适配你遇到的PDF转Word后部分单词字号不一致的场景:
Sub FindWordsWithMixedFontSizes() Dim doc As Document Dim wordRange As Range Dim char As Range Dim sizeDict As Object Dim currentWord As String Set doc = ActiveDocument Set sizeDict = CreateObject("Scripting.Dictionary") ' 遍历文档中的每个单词 For Each wordRange In doc.Words currentWord = Trim(wordRange.Text) ' 跳过空字符或纯标点 If Len(currentWord) > 1 And Not currentWord Like "[!a-zA-Z0-9]*" Then sizeDict.RemoveAll ' 清空字号记录字典 ' 遍历单词中的每个字符 For Each char In wordRange.Characters Dim fontSize As Single fontSize = char.Font.Size ' 记录出现过的字号 If Not sizeDict.Exists(fontSize) Then sizeDict.Add fontSize, 1 End If ' 找到两种不同字号后,选中单词并提示 If sizeDict.Count >= 2 Then wordRange.Select MsgBox "找到混合字号的单词:" & currentWord, vbInformation ' 如需批量查找,取消注释下面一行即可继续遍历 ' Exit For End If Next char End If Next wordRange MsgBox "查找完成", vbInformation End Sub
代码说明
- 用
Scripting.Dictionary记录单词内的字号,避免重复统计 - 自动跳过短单词和纯标点的无效内容,提升效率
- 找到目标单词后会自动选中并弹窗提示;若需批量查找,注释掉
Exit For即可遍历整个文档 - 默认适配字母、数字组成的单词,如需支持其他字符,可调整判断条件
Not currentWord Like "[!a-zA-Z0-9]*"
使用步骤
- 打开目标Word文档
- 按
Alt + F11打开VBA编辑器 - 右键点击左侧项目窗口中的文档,选择插入→模块
- 将代码粘贴到模块窗口中
- 按
F5或点击工具栏运行按钮启动代码
内容的提问来源于stack exchange,提问作者Khanh Ngoc Nguyen
相关产品推荐
相关产品推荐

