ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 420|回复: 9

[求助] Word如何查找书名号不全的地方

[复制链接]

TA的精华主题

TA的得分主题

发表于 2021-12-21 12:19 | 显示全部楼层 |阅读模式
校核Word文档时,怎么能查找到所有书名号只有一半,另一半缺少(不成对)的地方并高亮显示?求高手指导

TA的精华主题

TA的得分主题

发表于 2021-12-21 12:40 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-12-21 12:53 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
413191246se 发表于 2021-12-21 12:40
可以用 VBA 宏试试。

你有相关的代码吗?

TA的精华主题

TA的得分主题

发表于 2021-12-21 23:28 | 显示全部楼层
本帖最后由 413191246se 于 2021-12-23 21:21 编辑

略。。。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-12-22 09:36 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
413191246se 发表于 2021-12-21 23:28
* 楼主,我没有现成的代码,临时研制的,水平较低,敬请见谅!请试用前备份好你的文档,以免造成不必要的损 ...

试了试,效果很好,万分感谢。刚刚接触VBA,什么都不懂。

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-12-22 20:41 来自手机 | 显示全部楼层
413191246se 发表于 2021-12-21 23:28
* 楼主,我没有现成的代码,临时研制的,水平较低,敬请见谅!请试用前备份好你的文档,以免造成不必要的损 ...

改动了几处,请指正
Sub aaaa_CheckBookSymbol()
'查找书名号
'绿色正常!红色/粉色不正常!
'全选-->突出显示:无颜色-->清除突出显示
    ActiveDocument.Content.Font.ColorIndex = wdAuto
    With Selection
        .HomeKey 6
        With .Find
            .ClearFormatting
            .Text = "《"
            .Replacement.Text = ""
            .Forward = True
            .MatchWildcards = True
            Do While .Execute
                With .Parent
                    Do
                        .MoveEnd
                        If .Text Like "*" & vbCr Then goto100
                    Loop Until .Text Like "*[《》]"
                    If .Text Like "*《" Then
      100                  .MoveEnd 1, -1
                        .Range.HighlightColorIndex = wdRed
                    ElseIf .Text Like "*》" Then
                        .Range.HighlightColorIndex = wdBrightGreen
                    End If
                    .Start = .End
                End With
            Loop
        End With
    End With
   
'''反向查找
    With Selection
        .EndKey 6
        With .Find
            .ClearFormatting
            .Text = "》"
            .Replacement.Text = ""
            .Forward = False
            .MatchWildcards = True
            Do While .Execute
                With .Parent
                    If .Range.HighlightColorIndex = 0 Then
                        Do
                            .MoveStart 1, -1
                            If Text Like vbcr&"*" Then goto200

                        Loop Until .Text Like "[《》]*"
                        If .Text Like "》*" Then
            200                .MoveStart
                            .Range.HighlightColorIndex = wdPink
                        End If
                    End If
                    .End = .Start
                End With
            Loop
        End With
        .HomeKey 6
    End With
    MsgBox "Complete!", 0 + 48
End Sub

TA的精华主题

TA的得分主题

发表于 2021-12-23 21:20 | 显示全部楼层
*** 楼主,你还会用 行号,挺不错的!我都不会。我现在只会 行标。——我这两天思考反向查找漏了回车符这一点,这次补上了。——但我的代码、你修改的代码测试后均不正确!——我重新修改了一下,似乎对了,你多测试一下吧!(如果你是 Win10-64位系统,要把我的代码复制到空白文档后,再剪切到 VBE 中才能见到汉字!)
   
*** 下面是例文:
党十九届五中全会通过6767的中3434353434制定国于民经济《远景目《建议》共央《标划。
  我们党领导人民治国理政,很重要的一个方面就是要回答好实现》什样的》发展、怎样》实现这个重大问题。
简称《建议》),强调》发展《理念贯穿程和各领域”。
  学懂弄通习近平总书记在省部级主要领导干部学习贯很重要《的就《是要《段贯彻新发展理念的极端重要性。
习近平《建议》总书记建议》在关于的说明中指出:“必须强调》的是,》新《时代新《阶段的《发展必须贯彻新发展理念”。
   
*** 修订代码:
  1. Sub aaaa_CheckBookSymbol_Update()
  2. '查找书名号
  3. '绿色正常!红色/粉色不正常!
  4. '全选-->突出显示:无颜色-->清除突出显示
  5.     ActiveDocument.Content.Font.ColorIndex = wdAuto
  6.     With Selection
  7.         .HomeKey 6
  8.         With .Find
  9.             .ClearFormatting
  10.             .Text = "《"
  11.             .Replacement.Text = ""
  12.             .Forward = True
  13.             .MatchWildcards = True
  14.             Do While .Execute
  15.                 With .Parent
  16.                     Do
  17.                         .MoveEnd
  18.                         If .Text Like "*" & vbCr Then GoTo sk
  19.                     Loop Until .Text Like "*[《》]"
  20.                     If .Text Like "*《" Then
  21. sk:
  22.                         .MoveEnd 1, -1
  23.                         .Range.HighlightColorIndex = wdRed
  24.                     ElseIf .Text Like "*》" Then
  25.                         .Range.HighlightColorIndex = wdBrightGreen
  26.                     End If
  27.                     .Start = .End
  28.                 End With
  29.             Loop
  30.         End With
  31.     End With

  32. '''反向查找
  33.     With Selection
  34.         .EndKey 6
  35.         With .Find
  36.             .ClearFormatting
  37.             .Text = "》"
  38.             .Replacement.Text = ""
  39.             .Forward = False
  40.             .MatchWildcards = True
  41.             Do While .Execute
  42.                 With .Parent
  43.                     If .Range.HighlightColorIndex = 0 Then
  44.                         Do
  45.                             .MoveStart 1, -1
  46.                             If .Text Like vbCr & "*" Then GoTo sp
  47.                             If .Characters(1).HighlightColorIndex > 0 Then Exit Do
  48.                         Loop Until .Text Like "[《》]*"
  49.                         If .Text Like "》*" Then
  50. sp:
  51.                             .MoveStart
  52.                             .Range.HighlightColorIndex = wdPink
  53.                         End If
  54.                     End If
  55.                     .End = .Start
  56.                 End With
  57.             Loop
  58.         End With
  59.         .HomeKey 6
  60.     End With
  61.     MsgBox "Complete!", 0 + 48
  62. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2021-12-23 21:32 | 显示全部楼层
* 楼主,不好意思!开始我误以为你修改的代码有问题;重新测试后,你修改的代码和我重新修改的结果是一样的!(text 前面加个点就行了,goto100, goto200 要有空格)——这回,请重新测试一下吧!

上帖我说了,正向查找我注意到回车符了,反向查找时就忘了这点,我重新一步一步地测试后修改了一下(不是抄你的),当然我用行标和你用行号效果是一样的。(你有兴趣用 Word VBA 来自动排版吗?如果有,咱们可以经常交流一下。我虽然学了 Word VBA 10 年半了,但水平很低,经常录制宏。)

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-12-24 11:14 | 显示全部楼层
413191246se 发表于 2021-12-23 21:32
* 楼主,不好意思!开始我误以为你修改的代码有问题;重新测试后,你修改的代码和我重新修改的结果是一样的 ...

正在琢磨VBA自动排版的事情,刚刚接触VBA几天,很多东西都不知道。非常希望您能够多指导。希望留个联系方式,我的QQ:47561321

TA的精华主题

TA的得分主题

发表于 2021-12-24 16:44 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 413191246se 于 2021-12-24 19:11 编辑

楼主,我把我的最新成果发给你,有空请帮忙看看,提提意见,我看好你,未来可能会成为大神!(发到你QQ邮箱,我也是QQ邮箱,163、126上不去了)。
----补:楼主,我忘了说了,如果你的 Word 是 2007 版本以上,请执行 Custom2019,会出现“加载项”选项卡,你将它右键加到“快速访问工具栏”上,方便使用;如果是 2003 版本,请执行 Custom2013,工具栏会多出一些自定义按钮。如果想自定义热键,可执行 Hotkey,F5:保存、F6:关闭、F7:普通排版、F8:公文排版。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-23 12:16 , Processed in 0.031917 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表