VBA操作WORD(二):替换字符(含空格、全角字符、换行符等)
生活随笔
收集整理的這篇文章主要介紹了
VBA操作WORD(二):替换字符(含空格、全角字符、换行符等)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這篇實現WPS文字工具提供的幾個小功能:
Sub 段落首行縮進轉為空格()Dim ib As ParagraphFor Each ib In ActiveDocument.Paragraphs'排除表格If ib.Range.Information(wdWithInTable) = False Thenib.Range.Select'縮進不一定是2個字符,只要縮進不為0就替換,避免標題、主送對象等誤操作If ib.Range.ParagraphFormat.FirstLineIndent > 0 Or ib.Range.ParagraphFormat.CharacterUnitFirstLineIndent > 0 ThenWith Selection.ParagraphFormat.CharacterUnitFirstLineIndent = 0.FirstLineIndent = 0End Withib.Range.Words(1).InsertBefore " " '插入2個全角字符End IfEnd IfNext End Sub '第一個參數是目標替換字符串,第二個參數是替換后的字符串 Sub 自定義替換(tarText As String, repText As String)'Application.ScreenUpdating = FalseSelection.Find.ClearFormattingSelection.Find.Replacement.ClearFormattingWith Selection.Find.Text = tarText.Replacement.Text = repText.Forward = True.Wrap = wdFindContinue.Format = False.MatchCase = False.MatchWholeWord = False.MatchByte = True.MatchWildcards = True '要設置為True,否則通配符不生效.MatchSoundsLike = False.MatchAllWordForms = FalseEnd WithSelection.Find.Execute Replace:=wdReplaceAllActiveWindow.ActivePane.VerticalPercentScrolled = 0 End Sub Sub 刪除段首空格() '含全角和半角空格;WPS只刪空格Call 自定義替換("^13[ ]{1,}", "^13") End SubSub 換行符轉為回車()Call 自定義替換("^l", "^13") '換行符轉為回車 End Sub^p在微軟Word中會報錯,WPS中^13和^p都可以執行上面的代碼。
'.Text = """(*)"""'.Replacement.Text = ChrW(8220) & "\1" & ChrW(8221)'也可以將空格、全角空格替換掉'注意:如果表格中有回車符,會造成誤操作。Call 自定義替換("^13{2,}", "^p") '刪除2或以上空行,^13是回車符,^p為段落標記替換全角字符:
Dim qjsz, bjsz As String, iii As Integer qjsz = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,/《》?;':【】{}\|=-+_)(×%$#@!'?&" bjsz = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,/<>?;’:[]{}\|=-+_)(*%$#@!`~&" Selection.WholeStory For iii = 1 To 95 With Selection.Find .Text = Mid(qjsz, iii, 1) .Replacement.Text = Mid(bjsz, iii, 1) .Format = False .MatchWildcards = False .Execute Replace:=wdReplaceAll End With Next iii全文搜索關鍵字(Exit Do沒注釋掉就表示匹配第一個):
Sub 全文搜索關鍵字() '注意下面三處Selection不是同一個對象。Selection.HomeKey unit:=wdStoryDo While Selection.Find.Execute(FindText:="關鍵字", Forward:=True) = TrueSelection.MoveStart unit:=wdParagraph, Count:=-1 '選中關鍵字所在段落With Selection'這里可以用Selection進行處理。End WithExit Do '第一次匹配成功就跳出循環,后面不處理Loop End Sub總結
以上是生活随笔為你收集整理的VBA操作WORD(二):替换字符(含空格、全角字符、换行符等)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 富文本编辑器内容存储至Mysql
- 下一篇: Word VBA:批量转PDF且保留书签