乔山办公网我们一直在努力
您的位置:乔山办公网 > word文档 > 关于Word <em>VBA</em>查找替换(含通配符)的问题-vba word替换,word

关于Word <em>VBA</em>查找替换(含通配符)的问题-vba word替换,word

作者:乔山办公网日期:

返回目录:word文档


把数据文件(或者 示例文件、文档)发给我,试帮你解决。
(联系方式 点我的名字,再点“查看更多资料>>”)

< 标识单词开始,也就是说这里要匹配一个整词,前面要么是空格,要么是标点符号等。

(Subject) 匹配“Subject”这个单词。用圆括号括起来的是让它成组,同时本来也可以在替换内容中通过“\1”来指代它。但是我看粘贴出来的代码里面替换内容为空,所以我觉得这个圆括号可有可无。

\\ 匹配“\”这个字符。因为“\”本身在查找控制字符里面具有特殊的控制意义(转义),所以要匹配它自己就必须在前面再加一个“\”进行转义。

* 匹配0到任意多个任意字符

([^11^13]){1} 匹配一个换段符(^13,在文档里面是直接键入ENTER得到)或者一个段内换行符(^11,在文档里面键入SHIFT+ENTER得到)。方括号的意思是匹配方括号里面这个集合中的任意字符。“{n}”表示匹配n次,所以“{1}”就是匹配1次了。至于那个圆括号,和上面提到的圆括号的功能相同,同样我觉得这里使用是多余的。

整句话的意思,就是要找到形如“Subject\ajdslfjasdlf”文字,且它后面必须是一个换段或者段内换行。

__________________
补充:

楼主说的没错,^11^13在这里是可以理解成或者的关系。

请问楼主提到的需求中,title后面是不是一定会有一个回车?

如果是这样的话,可以直接在Word查找替换对话框中用这个查找串: <Subject*\\<([!\\]@)[^11^13] ,替换为:\1 。

选中通配符后做全部替换即可。

应该是不需要VBA的吧?楼主可以先试试看,如果不行我再想办法。

___________________
再补充:

([!\\]@) 的意思就是匹配一个不包含“\”(这个由“[!\\]”来控制)的字符串,这个字符串由至少一个字符组成(这个由“@”来控制)。

所以,我的整个查找串的意思就是,查找一个“Subject”开头,后面有若干e79fa5e98193e78988e69d83337字符,最后一个反斜杆的后面有一个字符串,再往后就是一个回车。

当然,如果不想用通配符,当然自己写代码也是能做到了。但是就得自己去分析整个字符串,会需要考虑很多因素和可能的变化,代码会写得很复杂。此外,Word查找替换的通配符,是Word中很重要的一个功能,掌握它能够为平时的工作带来的很大便利。所以还是值得去研究一下的。

其实我就是看Word自带的帮助啊……在Word里面键入F1,然后输入关键字“查找替换”,好象返回的第一条就是我看的那个帮助,里面有这些控制符号的解释。

不过Word的查找替换对于模糊查询的支持总的来说还是比较弱。要想做到更精确、更复杂的搜索条件,还是需要用到正则表达式。这个可以在网上搜索一下“VBA 正则表达式”。
你找到了吗 我也想要

你的想法zd有问题:select *替换成select row后,select后面不管有多少文本都会被替换为row,还用考虑格式吗?
你的问题,可能使用word的替换功能就能实现了,只是在替换内容和替换为里使用正则表达式就可以了。
你可以把文档相关图片传上来,大家帮你看看

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网