去除WORD文档首行空格VBA代码
<; 标识单词开始,也就是说这里要匹配一个整词,前面要么是空格,要么是标点符号等。
(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”开头,后面有若干字符,最后一个反斜杆的后面有一个字符串,再往后就是一个回车。
当然,如果不想用通配符,当然自己写代码也是能做到了。
但是就得自己去分析整个字符串,会需要考虑很多因素和可能的变化,代码会写得很复杂。
此外,Word查找替换的通配符,是Word中很重要的一个功能,掌握它能够为平时的工作带来的很大便利。
所以还是值得去研究一下的。
其实我就是看Word自带的帮助啊……在Word里面键入F1,然后输入关键字“查找替换”,好象返回的第一条就是我看的那个帮助,里面有这些控制符号的解释。
不过Word的查找替换对于模糊查询的支持总的来说还是比较弱。
要想做到更精确、更复杂的搜索条件,还是需要用到正则表达式。
这个可以在网上搜索一下“VBA 正则表达式”。
在word里如何查找重复字
1. word并没有像excel那样的自动查找并标记重复内容,毕竟Word主要是文字处理软件,一篇文章有很多同样的词组是可以理解的。
2. 如果要找出重复的内容,只能先读一二次内容,人工先筛选下大概重复的内容,然后点击-查找-输入内容进行查找
在EXCEL里如何实现类似WORD里的通配符的查找功能?如果用VBA...
在查找之前,我们要做的事是,“编辑”→“查找”→“高级”,点选“使用通配符”之后,在“查找内容”框内填上要查找的文字和通配符。
关于通配符的用法: 1.“”: ①关于“>”。
使用该通配符可以用来指定要查找对象的结尾字符,比方说,要是你记不清所要查找对象的完整内容了,但记得要查找对象的结尾字符是某个特定的字符,此时大家就可以用“>”附在这个特定字符的后面,然后Word就会自动去查找这个特定字符,从而让我们看到我们要找的目标。
例如,在查找对话框中输入“up>”的话,Word查找工具就会在当前文档中查找到以“up”结尾的所有目标对象,例如会找到“setup”、“cup”等等对象。
如果查找的是汉字目标,我们要注意的是,查找的汉字应该是结尾字词(后面应该有标点符号分隔)...在查找之前,我们要做的事是,“编辑”→“查找”→“高级”,点选“使用通配符”之后,在“查找内容”框内填上要查找的文字和通配符。
关于通配符的用法: 1.“”: ①关于“>”。
使用该通配符可以用来指定要查找对象的结尾字符,比方说,要是你记不清所要查找对象的完整内容了,但记得要查找对象的结尾字符是某个特定的字符,此时大家就可以用“>”附在这个特定字符的后面,然后Word就会自动去查找这个特定字符,从而让我们看到我们要找的目标。
例如,在查找对话框中输入“up>”的话,Word查找工具就会在当前文档中查找到以“up”结尾的所有目标对象,例如会找到“setup”、“cup”等等对象。
如果查找的是汉字目标,我们要注意的是,查找的汉字应该是结尾字词(后面应该有标点符号分隔)。
②关于“”正好是相对的一组通配符,所以,我们可以用它来查找以某字母开头的对象。
2.“@”:该通配符可以用来查找字符中包含一个以上的前一字符。
例如,如果输入“me@n”的话,Word查找工具就可以找到“men”、“meen”之类的字符内容了。
3.“?”:“?”代表任意单个字符,当大家不清楚查找目标中指定位置的内容是什么的时候,就可以用“?”来代替,几个“?”就代表几个未知字符。
例如,在查找对话框中输入“?土”的话,Word查找工具就可以找到类似“黑土”、“黄土”之类的目标内容;输入“??土”的话,就能找到“五色土”之类的内容。
4.“*”:“*”可以用来代替任意多个字符,比如我们输入“*国”,就可以找到“大国”、“法兰西国”、“中华人民共和国”等字符串内容。
5.“[]”:该方框内的单个字符可以是指定要查找的字符之一,例如要是输入“[高矮]个”的话,Word查找工具就可以找到“高个”、“矮个”等内容。
6.“{}”:可以用来指定要查找的字符中包含前一字符的个数,比如输入“lit{1}le”就是说包含1个前一字符“t”,可以找穿场扁渡壮盗憋醛铂互到“litle”,输入 “lit{2}le”就是说包含2个前一字符“t”,可以找到“little”。
7.“[-]”:该通配符是用来指定范围内的任意单个字符,要是在查找对话框中输入“[a-c] mend”的话,Word查找工具就可以找到“amend”、“bmend”、“cmend”等字符内容。
通配符可以单独使用,但我们还可以把多个通配符使用一定的技巧组合起来,这样就可以使查找达到更精确的效果,比方说我们输入“”,就表示查找的是所有以“江山”开头并且以“多娇”结尾的字符串,当然,具体如何组合,就需要我们在以后的学习和实践中去摸索了。
求VBA大神帮忙,在word和excel间查读存数据(vba哦!)
这个应该完全满足要求了吧。
Sub TEST()Dim MyTable As Table, MyRng As CellFor Each MyTable In ThisDocument.TablesFor Each MyRng In MyTable.Range.CellsWith MyRng.Range.Find.Text = "RRDD-ST".ExecuteIf .Found ThenMyRng.Range.Style = ActiveDocument.Styles("引用")End IfEnd WithNext MyRngNext MyTableEnd Sub
VBA如何把内容从当前word复制到另一个word文件中
'打开后焦点发生了转移,activedocument已经指向刚打开的文件了'改为Sub Macro1()Dim myDoc'On Error Resume NextWith ActiveDocument.Tables(1).Cell(Row:=1, Column:=3).RangeSet myDoc = Word.Application.Documents.Open("E:\1.docx").Delete.InsertAfter Text:=myDoc.Tables(2).Cell(Row:=1, Column:=2)End WithEnd Sub'(InsertAfter Text:=myDoc.Tables(2).Cell(Row:=1, Column:=2)这行代码中,你确定表2存在吗?我测试时只建一个表,所以改为Tables(1).)'也可以这样控制焦点Sub Macro1()Dim myDoc'On Error Resume NextSet myDoc = Word.Application.Documents.Open("E:\1.docx", , , , , , , , , , , vbHide)With ActiveDocument.Tables(1).Cell(Row:=1, Column:=3).Range.Delete.InsertAfter Text:=myDoc.Tables(2).Cell(Row:=1, Column:=2)End WithEnd Sub
转载请注明出处51数据库 » vba word中查找空格
李二往往