ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 使宏代码替换支持通配符功能

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-1-31 21:58 | 显示全部楼层 |阅读模式
本帖最后由 cqz2022 于 2024-1-31 22:02 编辑

我想如图这样设置替换内容,由于要替换的内容较多,所以录制了一段宏代码,但是执行是却不能让 “通配符”生效,求老师帮忙修改一下

代码中的红色是要替换的内容,使用通配符,指两个“/”之的部分都会被替换为①,实际操作中①的位置什么都没有,简单说就是用这方法,删除两个“/”之间的字符,包含两个“/”。 附件是部分文件,参考。谢谢。 27 166.rar (13.36 KB, 下载次数: 4)
Text =/*/
Replacement.Text =

  1.     With Selection.Find
  2.         .Text = "/*/"
  3.         .Replacement.Text = ""
  4.         .Forward = True
  5.         .Wrap = wdFindContinue
  6.         .Format = False
  7.         .MatchCase = False
  8.         .MatchWholeWord = False
  9.         .MatchByte = False
  10.         .MatchAllWordForms = False
  11.         .MatchSoundsLike = False
  12.         .MatchWildcards = True
  13.     End With
复制代码



微信截图_20240131215057.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-2-1 06:39 | 显示全部楼层
解释不通,但是目标实现 了
  1. Selection.Find.ClearFormatting
  2.     Selection.Find.Replacement.ClearFormatting
  3.     Dim totalReport As Double
  4.     Dim placeHolderRep As Variant
  5.     Dim placeHolder As Variant

  6.     ActiveDocument.Select

  7.     totalReport = 0#
  8.     Selection.Find.ClearFormatting
  9.     With Selection.Find
  10.      .Text = "/*/"
  11.      .Replacement.Text = ""
  12.      .Forward = True
  13.      .Wrap = wdFindContinue
  14.      .Format = False
  15.      .MatchCase = False
  16.      .MatchWholeWord = False
  17.      .MatchAllWordForms = False
  18.      .MatchSoundsLike = False
  19.      .MatchWildcards = True
  20.     End With
复制代码

TA的精华主题

TA的得分主题

发表于 2024-2-1 11:36 | 显示全部楼层
这个代码只是查找,没有替换

TA的精华主题

TA的得分主题

发表于 2024-2-1 14:58 | 显示全部楼层
一开始我还以为你是要在execl中进行通配符的查找,结果看代码才发现是在Word中的

  1. `Selection.Find.ClearFormatting`:清除搜索操作的格式设置。

  2. `Selection.Find.Replacement.ClearFormatting`:清除替换操作的替换文本的格式设置。

  3. `ActiveDocument.Select`:选中当前活动文档。

  4. `Selection.Find.ClearFormatting`:清除搜索操作的格式设置。'重复了

  5. 以下是对`Selection.Find`的各个属性的注释:
  6. - `.Text = "/*/"`:搜索文本为"/*/",表示任意字符序列。
  7. - `.Replacement.Text = ""`:替换文本为空字符串,即删除搜索到的内容。
  8. - `.Forward = True`:向前搜索。
  9. - `.Wrap = wdFindContinue`:在搜索到文档结尾后从文档开头重新开始搜索。
  10. - `.Format = False`:不考虑文本格式。
  11. - `.MatchCase = False`:不区分大小写。
  12. - `.MatchWholeWord = False`:不仅匹配完整单词。
  13. - `.MatchAllWordForms = False`:不考虑单词的所有形式。
  14. - `.MatchSoundsLike = False`:不考虑发音相似的单词。
  15. - `.MatchWildcards = True`:使用通配符进行搜索。
复制代码


TA的精华主题

TA的得分主题

发表于 2024-2-1 16:01 | 显示全部楼层
    With Selection.Find
        .Text = "/*/"
        .Replacement.Text = ""
        .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

TA的精华主题

TA的得分主题

发表于 2024-2-1 19:28 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
其实录制一下宏就可解决。。。

TA的精华主题

TA的得分主题

发表于 2024-2-2 14:32 来自手机 | 显示全部楼层
建议写成自定义函数,方便下次使用,比如:
【用VBA编写自定义函数,结合通配符,批量排版Word文档的标题和字体,批量删除空行等 - CSDN App】http://t.csdnimg.cn/QTKRI
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-18 23:38 , Processed in 0.039036 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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