You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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]*"

使用步骤

  1. 打开目标Word文档
  2. 按Alt + F11打开VBA编辑器
  3. 右键点击左侧项目窗口中的文档,选择插入→模块
  4. 将代码粘贴到模块窗口中
  5. 按F5或点击工具栏运行按钮启动代码

内容的提问来源于stack exchange,提问作者Khanh Ngoc Nguyen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 09:26:15