ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 查找中英字符,数字混合的段落,如何控制查找段落的总字符数?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-5-31 15:13 | 显示全部楼层 |阅读模式
有很多这种单独一段的文字,有的段落是纯中文字符,有的段落中分别混有:中文字,中文符号,中文数字,英文字母,阿拉伯数字,且它们在段落中所处的顺序和字符数都不同,相同点只是段尾都有一个中文冒号。
想只查找这种1~50字符的段落,加粗蓝色处理,求老师们帮忙!谢谢!
请看附件!

附件.rar

4.3 KB, 下载次数: 107

TA的精华主题

TA的得分主题

发表于 2020-6-1 09:19 | 显示全部楼层
遍历段落,判断段落的长度,段落内容可以用正则判断。

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-6-1 09:46 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
ming0018 发表于 2020-6-1 09:19
遍历段落,判断段落的长度,段落内容可以用正则判断。

汗颜!水平不够!还请老师援手!谢谢!

TA的精华主题

TA的得分主题

发表于 2020-6-1 10:10 | 显示全部楼层
相见是缘8 发表于 2020-6-1 09:46
汗颜!水平不够!还请老师援手!谢谢!

1-50字的段落,段落文字的要求是什么?你上面写的比较模糊。

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-6-1 13:17 | 显示全部楼层
ming0018 发表于 2020-6-1 10:10
1-50字的段落,段落文字的要求是什么?你上面写的比较模糊。

老师好!

就是查找:
一、1~50 纯中文字符的段落,段尾都有一个中文冒号的段落。找到后加粗蓝色处理。
二、1~50 字符的段落(段落中分别混有:中文字,中文符号,中文数字,英文字母,阿拉伯数字,且它们在段落中所处的顺序和字符数都不同),段尾都有一个中文冒号的段落。找到后加粗蓝色处理。

简单来说,就是查找:
1~50个任意字符的段落,段尾都有一个中文冒号的段落。找到后加粗蓝色处理。

TA的精华主题

TA的得分主题

发表于 2020-6-1 17:49 | 显示全部楼层
  1. Sub 查找特定的段落()
  2.     Dim Doc As Document
  3.     Dim Par As Paragraph
  4.     Dim TmpTxt As String
  5.     Dim reg1 As Object
  6.     Set Doc = ActiveDocument
  7.     Set reg1 = CreateObject("VBSCRIPT.REGEXP")    'RegEx为建立正则表达式
  8.     With reg1
  9.         .Global = True: .Pattern = "^.+:$"
  10.     End With
  11.     For Each Par In Doc.Paragraphs
  12.         '文档中都是纯文本,无图片表格之类的其它元素。
  13.         TmpTxt = Par.Range.Text
  14.         If Trim(Len(TmpTxt)) > 1 Then
  15.             TmpTxt = Replace(TmpTxt, Chr(13), "")
  16.             If Len(TmpTxt) <= 50 Then
  17.                 If reg1.test(TmpTxt) Then
  18.                     Par.Range.Font.Bold = True
  19.                     Par.Range.Font.ColorIndex = wdBlue
  20.                 End If
  21.             End If
  22.         End If
  23.     Next
  24. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2020-6-1 23:28 | 显示全部楼层
* 虽然 ming 老师出手了,我不应该出手;但只是想力求简洁;另外,50字的段落字数是否太长了?
  1. Sub test()
  2.     Dim i As Paragraph
  3.     For Each i In ActiveDocument.Paragraphs
  4.         If Len(i.Range) < 50 And i.Range Like "*:?" Then i.Range.Font.ColorIndex = wdPink: i.Range.Bold = True
  5.     Next
  6. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-6-6 12:14 | 显示全部楼层

ming0018 老师好!
抱歉!因家里有事,回了趟老家,今天上午刚回来,回复晚了敬请见谅!
感谢 老师出手帮忙,代码刚以测试,完美达愿!多谢!多谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-6-6 12:15 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 相见是缘8 于 2020-6-13 07:01 编辑
413191246se 发表于 2020-6-1 23:28
* 虽然 ming 老师出手了,我不应该出手;但只是想力求简洁;另外,50字的段落字数是否太长了?

413191246se 老师好!
抱歉!因家里有事,回了趟老家,今天上午刚回来,回复晚了敬请见谅!
感谢 老师出手帮忙,代码刚以测试,完美达愿!谢谢!谢谢!
之所以要限定为50个字符,是要修改的文档,有很多超过50个字符的类似段落,无需加粗、色处理。

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-6-12 14:55 | 显示全部楼层
413191246se 发表于 2020-6-1 23:28
* 虽然 ming 老师出手了,我不应该出手;但只是想力求简洁;另外,50字的段落字数是否太长了?

老师好!
想请你在这个代码上再加一句:把段落符全部替换为“五号、黑色、非加粗”的代码,可以吗?谢谢!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-24 09:12 , Processed in 0.039448 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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