ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求一个查找文档内多余的标点符号并把它们改为蓝色的宏代码

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-3 16:56 | 显示全部楼层
413191246se 发表于 2015-11-3 11:14
❶一 (为MS Gothic字体)标题符号时,查找替换不了----------这个问题,暂时束手无策,139。

师傅好!
好的。

TA的精华主题

TA的得分主题

发表于 2015-11-4 17:27 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
139:还是在你的帖子回复吧,还是第3个小问题:黑圈123白圈一二三加顿号的宏:(再试试。另外:你前2个小问题,多次替换的问题,是A替换为甲,B替换为乙,C替换为丙,D替换为丁……这样吗?)
  1. Sub 黑圈123加顿号()
  2. 'MS Gothic字体:黑圈1/2/3后加顿号
  3.     Selection.HomeKey unit:=wdStory
  4.     Do
  5.         Selection.Find.ClearFormatting
  6.         Selection.Find.Execute findtext:=ChrW(10102)
  7.         If Selection.Find.Found = True Then
  8.             Selection.MoveEnd unit:=wdCharacter, Count:=1
  9.             If Selection.Characters.Last.Text Like "[  ]" Or Selection.Characters.Last.Text = ChrW(160) Then Selection.Characters.Last.Delete
  10.             If Len(Selection) = 1 Then
  11.                 Selection.InsertAfter Text:="、"
  12.             Else
  13.                 If Selection.Characters.Last.Text <> "、" Then Selection.MoveEnd unit:=wdCharacter, Count:=-1: Selection.InsertAfter Text:="、"
  14.             End If
  15.             Selection.MoveRight unit:=wdCharacter, Count:=1
  16.         End If
  17.     Loop Until Selection.Find.Found = False
  18. '
  19.     Selection.HomeKey unit:=wdStory
  20.     Do
  21.         Selection.Find.ClearFormatting
  22.         Selection.Find.Execute findtext:=ChrW(10103)
  23.         If Selection.Find.Found = True Then
  24.             Selection.MoveEnd unit:=wdCharacter, Count:=1
  25.             If Selection.Characters.Last.Text Like "[  ]" Or Selection.Characters.Last.Text = ChrW(160) Then Selection.Characters.Last.Delete
  26.             If Len(Selection) = 1 Then
  27.                 Selection.InsertAfter Text:="、"
  28.             Else
  29.                 If Selection.Characters.Last.Text <> "、" Then Selection.MoveEnd unit:=wdCharacter, Count:=-1: Selection.InsertAfter Text:="、"
  30.             End If
  31.             Selection.MoveRight unit:=wdCharacter, Count:=1
  32.         End If
  33.     Loop Until Selection.Find.Found = False
  34. '
  35.     Selection.HomeKey unit:=wdStory
  36.     Do
  37.         Selection.Find.ClearFormatting
  38.         Selection.Find.Execute findtext:=ChrW(10104)
  39.         If Selection.Find.Found = True Then
  40.             Selection.MoveEnd unit:=wdCharacter, Count:=1
  41.             If Selection.Characters.Last.Text Like "[  ]" Or Selection.Characters.Last.Text = ChrW(160) Then Selection.Characters.Last.Delete
  42.             If Len(Selection) = 1 Then
  43.                 Selection.InsertAfter Text:="、"
  44.             Else
  45.                 If Selection.Characters.Last.Text <> "、" Then Selection.MoveEnd unit:=wdCharacter, Count:=-1: Selection.InsertAfter Text:="、"
  46.             End If
  47.             Selection.MoveRight unit:=wdCharacter, Count:=1
  48.         End If
  49.     Loop Until Selection.Find.Found = False

  50. 'MS Gothic字体:白圈一/二/三后加顿号
  51.     Selection.HomeKey unit:=wdStory
  52.     Do
  53.         Selection.Find.ClearFormatting
  54.         Selection.Find.Execute findtext:=ChrW(12928)
  55.         If Selection.Find.Found = True Then
  56.             Selection.MoveEnd unit:=wdCharacter, Count:=1
  57.             If Selection.Characters.Last.Text Like "[  ]" Or Selection.Characters.Last.Text = ChrW(160) Then Selection.Characters.Last.Delete
  58.             If Len(Selection) = 1 Then
  59.                 Selection.InsertAfter Text:="、"
  60.             Else
  61.                 If Selection.Characters.Last.Text <> "、" Then Selection.MoveEnd unit:=wdCharacter, Count:=-1: Selection.InsertAfter Text:="、"
  62.             End If
  63.             Selection.MoveRight unit:=wdCharacter, Count:=1
  64.         End If
  65.     Loop Until Selection.Find.Found = False
  66. '
  67.     Selection.HomeKey unit:=wdStory
  68.     Do
  69.         Selection.Find.ClearFormatting
  70.         Selection.Find.Execute findtext:=ChrW(12929)
  71.         If Selection.Find.Found = True Then
  72.             Selection.MoveEnd unit:=wdCharacter, Count:=1
  73.             If Selection.Characters.Last.Text Like "[  ]" Or Selection.Characters.Last.Text = ChrW(160) Then Selection.Characters.Last.Delete
  74.             If Len(Selection) = 1 Then
  75.                 Selection.InsertAfter Text:="、"
  76.             Else
  77.                 If Selection.Characters.Last.Text <> "、" Then Selection.MoveEnd unit:=wdCharacter, Count:=-1: Selection.InsertAfter Text:="、"
  78.             End If
  79.             Selection.MoveRight unit:=wdCharacter, Count:=1
  80.         End If
  81.     Loop Until Selection.Find.Found = False
  82. '
  83.     Selection.HomeKey unit:=wdStory
  84.     Do
  85.         Selection.Find.ClearFormatting
  86.         Selection.Find.Execute findtext:=ChrW(12930)
  87.         If Selection.Find.Found = True Then
  88.             Selection.MoveEnd unit:=wdCharacter, Count:=1
  89.             If Selection.Characters.Last.Text Like "[  ]" Or Selection.Characters.Last.Text = ChrW(160) Then Selection.Characters.Last.Delete
  90.             If Len(Selection) = 1 Then
  91.                 Selection.InsertAfter Text:="、"
  92.             Else
  93.                 If Selection.Characters.Last.Text <> "、" Then Selection.MoveEnd unit:=wdCharacter, Count:=-1: Selection.InsertAfter Text:="、"
  94.             End If
  95.             Selection.MoveRight unit:=wdCharacter, Count:=1
  96.         End If
  97.     Loop Until Selection.Find.Found = False
  98. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-4 19:47 | 显示全部楼层
413191246se 发表于 2015-11-4 17:27
139:还是在你的帖子回复吧,还是第3个小问题:黑圈123白圈一二三加顿号的宏:(再试试。另外:你前2个小问 ...

师傅好!

现在这个代码可以正常替换了。

师傅、如这些MS Gothic字体标题符号后面,有的还有一个空格、二个空格的,有的又没有,一次性把这些标题符号替换成,后面没有空格带上顿号的。代码要怎么修改?

师傅、前2个小问题,多次替换的问题,是A替换为甲,B替换为乙,C替换为丙,D替换为丁……是这样的。也就是下面的问题(实际上也就是想一次性解决几天前我上传给您的小标题编号附件里面的问题)。

下面这句语句您前几天提醒过我,就是几天前我上传给您的小标题编号附件里面,如果要达到全部替换的话至少有几百步,也就是说要几百句ActiveDocument.Content.Find.Execute findtext:="^l", ReplaceWith:="^p", Replace:=wdReplaceAll这句语句,我想VBA中有不有类似的语句,中间带括号什么的,可以把所有查找的A、A、A、……括在括号内,把所有替换的B、B、B、……括在另一个括号内再替换,这样可以简化很多很多的步骤,不用几百句ActiveDocument.Content.Find.Execute findtext:="^l", ReplaceWith:="^p", Replace:=wdReplaceAll这句语句。

师傅、感谢您一直在心里挂着徒弟的事!

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-5 19:29 | 显示全部楼层
413191246se 发表于 2015-11-2 10:11
139:两个宏确实没有问题!宏也叫过程、程序,标志是第一句必须是 Sub XXX(),最后一句是 End Sub,所以, ...

师傅好!
你的那个“替换英文双引号为中文”宏单独可运行,可我按您上次教的方法把它们2个组合在一起却运行不了,提示运行时错误5623,我的水平不够,还是请师傅出手组合一下。

Sub 将点号转换为句号_但不转换小数点()
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
    .Text = "([!0-9\.\.])@\.([!0-9])"
    .Replacement.Text = "\1。\2"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = False
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchWildcards = True
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
'替换英文双引号为中文
    Selection.WholeStory
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
      .Text = """"
      .Forward = True
      .Wrap = wdFindStop
      .MatchByte = True
    End With
    With Selection
      While .Find.Execute
          .Text = ChrW(8220)
          .Find.Execute
          .Text = ChrW(8221)
      Wend
    End With
End Sub

TA的精华主题

TA的得分主题

发表于 2015-11-5 20:30 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-6 19:12 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-11-10 10:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
413191246se 发表于 2015-11-5 20:30
是有问题!暂时无果!

师傅好!
这2个宏可否有办法合并?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-15 18:32 , Processed in 0.019981 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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