ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[讨论] 修改批量设置下划线题号代码

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-5-8 13:13 | 显示全部楼层 |阅读模式
本帖最后由 geryjun 于 2012-5-12 13:07 编辑

批量设置下划线题号代码已经在18楼,现在我想修改为 对选定内容进行操作,这样我可以在同一个页面对三种条件进行操作,不会对其他内容产生影响。

我看过类似的代码,但不会修改,请高手指教。

Selection.ParagraphFormat.TabStops.ClearAll
'基于选定内容的查找与替换
    Dim myFind() As Variant, myReplace As String
    Dim aArray As Variant, mySet As String, n As Integer, M As Integer
    Dim myRange As Range, myBk As Bookmark


------------------------------
在编辑试题时,常常要修改题号为       1             可是网上下载的一些文档有出现以下三种情况,如____1_____、    1     、1、
求助如何批量修改为统一格式,具体请见附件。谢谢

现在基本解决了,代码在18楼。谢谢 sqhsqhli  的提示:

现在根据10楼内容,录制了条件一的代码:但是测试时去不能实现加下划线的效果,求解。

  1. Sub 条件1()
  2. '
  3. ' 文档中的多个连续的空格变成一个半角空格
  4. '
  5.     Selection.Find.ClearFormatting
  6.     Selection.Find.Replacement.ClearFormatting
  7.     With Selection.Find
  8.         .Text = "^32{1,}"
  9.         .Replacement.Text = "^32"
  10.         .Forward = True
  11.         .Wrap = wdFindContinue
  12.         .Format = False
  13.         .MatchCase = False
  14.         .MatchWholeWord = False
  15.         .MatchByte = False
  16.         .MatchAllWordForms = False
  17.         .MatchSoundsLike = False
  18.         .MatchWildcards = True
  19.     End With
  20.     Selection.Find.Execute Replace:=wdReplaceAll
  21.     Selection.Find.Execute Replace:=wdReplaceAll
  22.     '除英文间的空格保留之外,其余多余的空格都被删除
  23.     Selection.Find.ClearFormatting
  24.     Selection.Find.Replacement.ClearFormatting
  25.     With Selection.Find
  26.         .Text = "([!a-zA-Z])( )([!a-z,A-Z])"
  27.         .Replacement.Text = "\1\3"
  28.         .Forward = True
  29.         .Wrap = wdFindContinue
  30.         .Format = False
  31.         .MatchCase = False
  32.         .MatchWholeWord = False
  33.         .MatchByte = False
  34.         .MatchAllWordForms = False
  35.         .MatchSoundsLike = False
  36.         .MatchWildcards = True
  37.     End With
  38.     '添加下划线
  39.     Selection.Find.ClearFormatting
  40.     Selection.Find.Replacement.ClearFormatting
  41.     With Selection.Find
  42.         .Text = "[0-9]{1,}"
  43.         .Replacement.Text = "^32^&^32"
  44.         .Forward = True
  45.         .Wrap = wdFindContinue
  46.         .Format = True
  47.         .MatchCase = False
  48.         .MatchWholeWord = False
  49.         .MatchByte = False
  50.         .MatchAllWordForms = False
  51.         .MatchSoundsLike = False
  52.         .MatchWildcards = True
  53.     End With
  54.     Selection.Find.Execute Replace:=wdReplaceAll
  55. End Sub
复制代码
  1. Sub 条件二()
  2. '
  3. ' 替换__ 为空格,转换为条件三格式
  4. '
  5.     Selection.Find.ClearFormatting
  6.     Selection.Find.Replacement.ClearFormatting
  7.     With Selection.Find
  8.         .Text = "__"
  9.         .Replacement.Text = " "
  10.         .Forward = True
  11.         .Wrap = wdFindContinue
  12.         .Format = False
  13.         .MatchCase = False
  14.         .MatchWholeWord = False
  15.         .MatchByte = False
  16.         .MatchWildcards = False
  17.         .MatchSoundsLike = False
  18.         .MatchAllWordForms = False
  19.     End With
  20.     Selection.Find.Execute Replace:=wdReplaceAll
  21.     Selection.Find.Execute Replace:=wdReplaceAll
  22.     With Selection.Find
  23.         .Text = "_"
  24.         .Replacement.Text = " "
  25.         .Forward = True
  26.         .Wrap = wdFindContinue
  27.         .Format = False
  28.         .MatchCase = False
  29.         .MatchWholeWord = False
  30.         .MatchByte = False
  31.         .MatchWildcards = False
  32.         .MatchSoundsLike = False
  33.         .MatchAllWordForms = False
  34.     End With
  35.     Selection.Find.Execute
  36.     Selection.Find.Execute Replace:=wdReplaceAll
  37.     Selection.Find.Execute Replace:=wdReplaceAll
  38. End Sub
复制代码
现在的关键就是条件一的最后下划线可以实现的话,其他问题都可以解决。






附件内容如下:(内容来自于网络,内容没有任何意义,只是做演示。) 新建 Microsoft Word 文档.zip (4.15 KB, 下载次数: 34)



条件一:
中广网北京58日消息      1   经济之声《天下财经》报道,通化  2   金马昨天晚间发布公告,公司  3   又有两个批号的胶囊产品  4   被查出铬超标,胶囊的  5   来源来自早前已被曝光的问题供  6   应商华星胶丸厂。目前,  7   问题胶囊已全都  8   流入市场,通化金马将组  9   织召回和销毁。此前通化金马一  10   度宣  11   称除临时从  12   卓康胶囊厂购  13   进胶囊外,没  14   有再向其他被曝光的问  15   题供应商采购。
条件二
中广网北京58日消息    ____1_____ 经济之声《天下财经》报道,通化____2____金马昨天晚间发布公告,公司____3____又有两个批号的胶囊产品____4____被查出铬超标,胶囊的____5____来源来自早前已被曝光的问题供____6____应商华星胶丸厂。目前,____7____问题胶囊已全都____8____流入市场,通化金马将组____9____织召回和销毁。此前通化金马一____10____度宣____11____ 称除临时从____12____卓康胶囊厂购____13____进胶囊外,没____14____有再向其他被曝光的问____15____题供应商采购。
条件三
中广网北京58日消息    1 经济之声《天下财经》报道,通化 2 金马昨天晚间发布公告,公司 3又有两个批号的胶囊产品4被查出铬超标,胶囊的5来源来自早前已被曝光的问题供6应商华星胶丸厂。目前,7 问题胶囊已全都8 流入市场,通化金马将组9 织召回和销毁。此前通化金马一10 度宣11 称除临时从12 卓康胶囊厂购13 进胶囊外,没14 有再向其他被曝光的问15 题供应商采购。
最终效果:
中广网北京58日消息      1   经济之声《天下财经》报道,通化  2   金马昨天晚间发布公告,公司  3   又有两个批号的胶囊产品  4   被查出铬超标,胶囊的  5   来源来自早前已被曝光的问题供  6   应商华星胶丸厂。目前,  7   问题胶囊已全都  8   流入市场,通化金马将组  9   织召回和销毁。此前通化金马一  10   度宣  11   称除临时从  12   卓康胶囊厂购  13   进胶囊外,没  14   有再向其他被曝光的问  15   题供应商采购。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-5-8 23:01 来自手机 | 显示全部楼层
本帖最后由 geryjun 于 2012-5-8 23:01 编辑

没人回复呀。
下载文档次数也少。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-5-9 07:17 | 显示全部楼层
首先应该是删除空白、删除________(不是下下划线),然后才是替换。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-5-9 13:07 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-5-9 15:54 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-5-9 16:49 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
szh9388 发表于 2012-5-9 15:54
也想知道,顶你一下

谢谢。同顶。

TA的精华主题

TA的得分主题

发表于 2012-5-9 16:53 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
因为不完全是数字加下划线,还要考虑日期里的数字不要加下划线,这个有难度 的。

TA的精华主题

TA的得分主题

发表于 2012-5-9 16:55 | 显示全部楼层
除非写VBA代码进行逐个判断差不多。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-5-9 19:56 | 显示全部楼层
wudixin96 发表于 2012-5-9 16:53
因为不完全是数字加下划线,还要考虑日期里的数字不要加下划线,这个有难度 的。

这个可以不考虑先,如果有就手动操作。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-5-9 20:48 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 geryjun 于 2012-5-9 21:44 编辑

已经有了思路,还没有录制宏,
第一步、先把条件一用去除空格的方法 条件二用替换__ 为空格  这样条件一和条件二都会变成了条件三。
第二步、使用通配符替换成功。

参考页面为: http://zshunj.cn/article/1798.html
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-19 18:17 , Processed in 0.042629 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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