Word給自動生成的目錄頁碼添加括號

Word給自動生成的目錄頁碼添加括號

一些學校的畢業論文格式要求中,要求目錄的頁碼需要加括號如下:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-kW5SI4pw-1582034649079)(C:\Users\weixin\AppData\Roaming\Typora\typora-user-images\image-20200218214156664.png)]

而Word自動生成的目錄格式中並沒有這一選項,因此很多人是自己手動一個一個輸上去的,要了老命。

而網上也有相關教程,但看來看去原理都是一樣,並不完美。

我們先來看看現有教程是怎麼搞的。

1.選中目錄內容

2.按ctrl+h,彈出替換框

3.在查找內容中填入“([0-9]{1,})”,而替換內容中填入“(\1)“,並且選中“使用通配符”選項,如下所示:在這裏插入圖片描述

一頓操作後點全部替換,悲劇就出現了:
在這裏插入圖片描述
目錄中所有的數字全部替換成了帶括號的,而事實上我們只希望右邊那一排帶括號。

下面開始本教程的內容。

1.第一步我們完全照抄上面的做法,得到上面那個悲劇的結果。

2.觀察這個結果我們可以發現,右邊那串括號的左右均沒有字符,因此我們直接將左右有字符的括號全部替換掉,操作同上,只是查找內容改成“)(?)”及“(?)(”,替換內容改爲“\1”,如下:

在這裏插入圖片描述
在這裏插入圖片描述
分別運行後結果如下:
在這裏插入圖片描述

可以看到只剩下左邊這個括號是我們不想要的了。

4.這個時候我們再觀察可以看到左邊這個括號的右邊是數字字符,之後是一個“.”,因此我們可以將查找內容改成“(([0-9]{1,}).”替換內容改爲“\1.”,再次替換,就得到完美的結果了!!!
在這裏插入圖片描述
當然這需要四步操作是比較煩的事情,有人可能覺得還不如直接輸入方便,那我們把上面的操作直接寫成宏代碼,只需要選中目錄然後點一下就搞定,代碼如下:

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "([0-9]{1,})"
.Replacement.Text = "(\1)"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll, Wrap:=wdFindStop

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "(?)("
.Replacement.Text = "\1"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll, Wrap:=wdFindStop

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ")(?)"
.Replacement.Text = "\1"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll, Wrap:=wdFindStop

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "(([0-9]{1,})."
.Replacement.Text = "\1."
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll, Wrap:=wdFindStop
發佈了252 篇原創文章 · 獲贊 598 · 訪問量 94萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章