关于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 正则表达式”。
如何用VBA实现WORD批量替换?
For i = 1 To n 'n是listview1的行数Selection.Find.ClearFormattingSelection.Find.Replacement.ClearFormattingWith Selection.Find.Text = ListView1.ListItems(i).SubItems(0) 'Findstr=listview1的第i行第1列对应单元格的内容.Replacement.Text = ListView1.ListItems(i).SubItems(1) 'Findstr=listview1的第i行第2列对应单元格的内容.Forward = True.Wrap = wdFindContinue.Format = False.MatchCase = False.MatchWholeWord = False.MatchByte = True.MatchWildcards = False.MatchSoundsLike = False.MatchAllWordForms = FalseEnd WithSelection.Find.Execute Replace:=wdReplaceAllListView1.selectedItem = iNextMsgBox "处理完毕!", vbInformation + vbOKOnly, "消息"ListView1.selectedItem = 1
word正文中怎样将所有某个字设置为红色,并加粗
打开一个含有要替换文字的文档,单击“编辑”下拉按钮,选择“替换”选项,打开“查找和替换”对话框,在“查找内容”和“替换为”下拉列表框中都输入“山茶花”,单击“更多”按钮展开对话框中的高级选项。
单击“格式”按钮,从弹出的菜单中选择“字体”命令。
打开“字体”对话框,在其中设置“字体颜色”为红色,“字形”为粗体,单击“确定”按钮,返回“查找和替换”对话框,依次单击“全部替换”和“关闭”按钮,执行全部替换操作并关闭“查找和替换”对话框,弹出“信息提示框”,已完成4处替换,单击“确定”按钮,替换效果
word VBA中可否同时选中相同颜色的字和word VBA剪贴板程序
问题太多,还一分没有。
我有个小程序,自动将WINDOWS剪切板的内容读入WORD文件。
你自己看看。
Public TempStrSub BeginCB()MsgBox "只能选择纯文字!!!", vbInformation, "开始"With Selection.EndKey unit:=wdStory.TypeText Text:=Chr(13) & Chr(13).InsertDateTime DateTimeFormat:="yyyy-MM-dd", InsertAsField:=False, _DateLanguage:=wdSimplifiedChinese, CalendarType:=wdCalendarWestern, _InsertAsFullWidth:=False.MoveLeft unit:=wdCharacter, Count:=10, Extend:=wdExtend.Copy.EndKey unit:=wdStory.TypeText Text:=Chr(13)End WithTempStr = Format(Now(), "yyyy-mm-dd")Call FirOpenEnd SubFunction FirOpen()Application.OnTime Now + TimeValue("00:00:01"), "CBText"End FunctionSub CBText()Dim MyData As DataObjectSet MyData = New DataObjectMyData.GetFromClipboardgetcbtext = MyData.GetText(1)If getcbtext <> TempStr ThenSelection.TypeText Text:=getcbtext & Chr(13) & Chr(13)TempStr = getcbtextEnd IfCall FirOpenEnd Sub
如何使用word查找和替换功能,将文档中所有红色的字体换为蓝色的
注意,在替换对话框中设置高级选项时,当光标(鼠标点击定位)在哪个里面,设置的格式就是哪个的。
你现在需要将光标点在查找中,并将字体格式设置为颜色自动。
再将光标点在替换中,重新设置要替换的字体的目标格式,即字体红色。
再替换。
祝你成功。
2010WORD里有个表格题让将成绩低于60分的用红色标注,该如何操...
word2010主要是用来处理文字的,在处理表格上并不像excel2010功能强大。
在excel2010中可以用命令或公式来实现“让将成绩低于60分的用红色标注”,但在word2010表格中,只能用普通的方法实现让将成绩低于60分的用红色标注”:按住“Ctrl”键,逐一选中成绩低于60分的单元格,然后进行单元格设置。
word2010中的原始表格如下:第一步,按住“Ctrl”键,逐一选中成绩低于60分的单元格;第二步,点击鼠标右键,选择“边框和底纹”→“底纹”,出现如下对话框:第三步,点击“确定”,关闭对话框,表格效果(60分以下的用红色底纹标识)如下图所示:? ????????
转载请注明出处51数据库 » word选中红色 替换 vba
总有刁民想害朕ooo