如何用VBA取得Word文件中的標題前面的序號

2021-08-30 12:14:48 字數 2074 閱讀 7625

遇到乙個小需求,需要提取word文件標題前面的序號,例如:

/**************舉例文件*******************/

1. 一級標題1   /*一級標題的編號+標題內容,編號可能是系統內建編號樣式,也可能是使用者

*自定義的樣式*/

段落2              /*文件內容段落2,標題1占用乙個段落,此處為2*/                    

段落3             /*文件內容段落3*/  

1.1 二級標題1.1       /*多級符號+二級標題,編號樣式為內建或使用者自定義樣式*/

段落5段落6

1.2 二級標題1.2

段落82. 一級標題2

段落10

2.1 二級標題2.1

2.1.1 **標題2.1.1

段落13

/**************舉例文件結束**************/

需要提取到:

1.11.2

2.12.1.1

這些序號,搜尋+研究了一下,找到了一方法,順手記錄一下,免得再次摔跤。

sub test()

dim myrange as range

dim num as string, title as string

'set ps = selection.bookmarks("\headinglevel").range.paragraphs

set ps = activedocument.bookmarks("\headinglevel").range.paragraphs

for each p in ps

set myrange = p.range

num = myrange.listformat.liststring

title = myrange.text

msgbox "編號:" & num & vbcrlf & "標題內容:" & title

next p

'set myrange = selection.bookmarks("\headinglevel").range.paragraphs(1).range

'msgbox "編號:" & myrange.listformat.liststring & vbcrlf & "標題內容:" & myrange.text

end sub

sub replaceheadingcontent()

dim myrange as word.range

dim num as string, content as string

'取得所有書籤

set ps = activedocument.bookmarks("\headinglevel").range.paragraphs

'對書籤中每乙個段落進行處理

for each p in ps

set myrange = p.range

with myrange

'把range結束範圍往前移乙個字元,目的是為了不包括換行符

.moveend unit:=wdword, count:=-1

'取出段落序號

num = trim(.listformat.liststring)

'取出heading的內容

content = trim(.text)

'如果段落序號不為空,則把段落序號取出附加的標題內容後面

if trim(num) <> "" then

if num = "1.1.1.1.1." or num = "1.1.1.1.1" then

msgbox "到目標點了。"

end if

if right(num, 1) = "." then num = left(num, len(num) - 1) '不需段落序號最後面的「.」

.text = content & "<" & num & ">"

end if

'msgbox "編號:" & num & vbcrlf & "標題內容:" & content

end with

next p

end sub

Word中利用VBA匯入樣式

由於經常編輯文字資料,需要匯入自己定義的樣式,比較麻煩。我利用巨集錄製了一些vba程式。下面是乙個示例。sub 匯入樣式表集 匯入樣式表集 巨集 destination e 待編輯文件.doc name 詩詞標題樣式 object wdorganizerobjectstyles destinatio...

如何修復損壞Word文件恢復受損文件中的文字

word 文件是許多電腦使用者寫作時使用的檔案格式,當你辛辛苦苦寫完一篇word文件後,發現它因損壞而無法開啟時,一定非常著急。其實,你不必心焦,因為我們還是有一些方法可以修復損壞文件,恢復受損文件中的文字。下面是具體的步驟 1 採用專用修復功能 在 檔案 選單上,單擊 開啟 在 查詢範圍 列表中,...

如何縮減word文件大小

自從公司使用了oa辦公系統後,office文件與日俱增,最近查了下伺服器,每日檔案增加的空間大小將近2g,從中抽取了幾個word文件看了下,裡面內容都不是很多,卻都200多k,甚至有2m的,於是整理了此文給業務部門,希望能使word檔案 1 壓縮 在將插入到 word 文件前,應先將進行壓縮,1 最...