感谢楼上的朋友关注,Font 不是变量,Font 只是用于查找关键字的关键字中的字符。 MatchPercent="100"*Font*\> 是用于查找的关键字,其中的 * 是通配符,表示 n 个 任意字符,\> 也是通配符(即>)。 我上传一个文件,例如直接使用 word 的查找和替换可以在这个文件的文本中搜索出 6 个匹配,我想再这 6 个匹配的每一个后面加上一个 ▼。 我没学过 VB,对 VBA 也不熟悉,由于需要,非常希望能写一个宏来实现这样的功能。 我现在已经写了一点:但是目前还只能找出文本中匹配的字符串,不能在匹配的字符串 后添加一个特殊符号。我想到是如果能将找出的每一个字符串存在一个变量或者数组中 的话那就好了。 我的代码如下: Sub SignMicro() ' ' SignMicro Macro ' 宏在 2008-3-3 由 Brook 录制 ' Dim strFindChar As String, Count As Integer 'strFindChar:找到的匹配字符串 Dim StringArray() As String Count = 0 'strFindChar = "MatchPercent=""100""*Font*\>" On Error Resume Next '忽略发生的错误,继续执行下面的代码 Application.ScreenUpdating = False '关闭屏幕更新 Selection.Find.ClearFormatting With Selection.Find '.Text = "MatchPercent=""100""*Font*\>" 'strFindChar = "MatchPercent=""100""*Font*\>" With ActiveDocument.Content.Find '针对全文档 Do While .Execute(findtext:="MatchPercent=""100""*Font*\>", MatchCase:=True, _ MatchWildcards:=True) = True Count = Count + 1 'Selection.InsertAfter "▼" Loop If MsgBox("文档中共发现了" & Count & "个" & strFindChar & vbCrLf _ & ", 按 Yes 将进行下一步工作,按 No 取消", vbYesNo + vbInformation) = vbYes Then .Execute findtext:=findChar, Wrap:=wdFindContinue End If End With .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = True 'Selection.InsertAfter "▼" 'End With 'Selection.Find.Execute Application.ScreenRefresh End With End Sub 由于对 VBA 不熟悉,所以代码写得很糟糕,希望大家不要笑,再次感谢关注。 期待牛人帮忙。。。。。。 |