大文檔多如垃圾的Word樣式,如何清理刪除

2020-12-06 阿德O辦公圖文

Word合併文檔統一格式,你做過嗎,什麼感受?

前些天,有一位網友問我word多級列表的問題,編號不連續。打開發來的文檔一看,這不僅僅是多級列表的小問題,而是合併文檔統一格式的大問題。

原來這個文檔是各個部門發來的文檔合併而成的,A4大小,接近2000頁,樣式有3000多個,非常混亂,根本不知道哪個樣式管理哪些文本,基本就是垃圾樣式,需要清理刪除,否則可能會讓Word崩潰。如此之多的樣式,都是合併時的各個文檔帶進來的。上個圖,大家感受一下。

大文檔多如垃圾的Word樣式,如何清理刪

多級列表都是綁定到樣式的,只要整理統一了樣式,多級列表的問題,自然迎刃而解。

關於多部門製作大型文檔,當然是要事先統一模板,制定寫作規範,嚴格按照規範寫作,這樣到最後合併的時候就很簡單了。但是事已至此,也不可能返回重新排版了。

該怎麼辦?

我建議,自己新建模板,制定整理規範,對未合併之前的各個小文檔分別整理後,再合併。如果這些小文檔都找不到了,就需要從大文檔中按章節拆分成小文檔再整理。無論是原來的小文檔,還是拆分後的小文檔,仍然可能面臨垃圾樣式的困擾。

有些人建議,清除所有格式,再重新排版,但這樣工作量就增加了不少。因為原來的作者也是有一定的排版邏輯的,所以原格式是有用的,可以區分正文和標題,可以用作查找替換時的格式限定,提高整理效率。

處理垃圾樣式的VBA代碼

下面介紹一些處理垃圾樣式的VBA代碼。為防意外,使用前務必備份好文檔。

第一步 斷開樣式,保留格式

既然樣式已經混亂到無法使用,那不如斷開所有樣式與文本的連結,只保留格式。

以下代碼來自網絡(請百度「在移除 Word 文檔樣式的同時保留格式 - 少數派」),作者是PlatyHsu,我為代碼作了一些注釋。

代碼的邏輯是遍歷文檔段落,分別獲得該段落的樣式的所有字體格式和所有段落格式,然後把段落樣式設置為「正文」,最後把之前獲得的字體和段落格式再應用到該段落上。這些格式都變成了該段落的直接格式,優先級高於「正文」樣式裡的格式,這樣原段落的格式就得到了保留,同時斷開了與原樣式的連結。

「正文」樣式是word的內置樣式,是其他段落樣式的基準。無論你願不願意,每個段落都必須有一個樣式,設置為基準樣式「正文」是較好的選擇。我們平常用的清除格式按鈕,就是把格式退回「正文」樣式裡的格式。

這個代碼並不能保留所有的格式。對於一個段落,有樣式的格式和直接格式兩種格式,直接格式中的段落格式不能保留,直接格式中的字體格式不一定能保留。因為這個代碼以段落為基礎,所以它也不一定能保留字符樣式。

Sub 移除樣式並保留格式()'不能完全保留格式'對於一個由多文檔合併起來的長文檔,它的樣式多而混亂以致於無法使用,會引起word崩潰'對於這些樣式,移除(即都統一為正文樣式),並保留各種格式(變成不受樣式控制的直接格式)Dim Para As ParagraphDim Fnt As Font '代碼字體的所有格式Dim Pfmt As ParagraphFormat '代表段落的所有格式For Each Para In ActiveDocument.ParagraphsWith ParaIf .Style <> ActiveDocument.Styles("正文") Then '如果不是正文樣式,則開始處理Set Fnt = .Style.Font '獲得段落樣式的所有字體屬性,賦給fntSet Pfmt = .Style.ParagraphFormat '獲得段落樣式的所有段落屬性,賦給pfmt.Style = ActiveDocument.Styles("正文") '把它的樣式改為正文.Range.Font = Fnt '為改變樣式後的段落設置回原來的字體屬性.Range.ParagraphFormat = Pfmt '為改變樣式後的段落設置回原來的段落屬性End IfEnd WithNextEnd Sub

第二步 移除未使用樣式

以下代碼可以刪除文檔中未使用的樣式,來自網絡(使用必應查找「T001337_Removing_Unused_Styles」),作者是Ken Endacott。代碼有改動。代碼的邏輯是,遍歷所有樣式,用樣式去查找主文檔內容,找不到的對應內容是就是未使用的樣式,需要刪除。刪除的方法用Application.OrganizerDelete,不用Style. Delete,因為後者低效且容易發生錯誤。

word樣式可以分為兩種,一種是內置樣式,一種是自定義樣式,內置樣式不可刪除,自定義樣式可以刪除。

word樣式是樹狀結構,一個樣式可能是基於另一個樣式建立的,其本身也可能是其他樣式的基準。如果刪除了一個未使用的樣式,但以此樣式為基準的樣式仍然在使用,那將會使段落格式發生不可意料的改變。

有時候用戶可能為內置樣式創建了一個別名,如「標題 1(科技)」,如果只處理自定義樣式的話,這樣的樣式別名就不能被刪除。

由於經常了第一步代碼的處理,所有樣式歸為「正文」樣式,所以不考慮樣式的樹狀依賴關係。因為內置樣式不可刪除,同時為了刪除它的一些別名,所以也不事先判斷是否為內置樣式。最終代碼如下。

(在本文所說場景下,代碼的邏輯也可以是:只要樣式名稱不是「正文」就刪除,但為了廣大網友方便使用,還是保留這樣。)

這個代碼只是處理主文檔的,不處理腳註、尾注、頁眉頁腳、文本框中的內容,不考慮樣式的樹狀依賴關係。需要運行多次,直到顯示刪除的樣式數量不變為止。

Sub 刪除未使用樣式organizerdelete()On Error GoTo ErrorHandlerDim oStyle As Style, i&i = 0For Each oStyle In ActiveDocument.Styles'If oStyle.BuiltIn = False ThenWith ActiveDocument.Content.Find.ClearFormatting.MatchWildcards = False.Style = CVar(oStyle.NameLocal).Execute FindText:="", Format:=TrueIf Not .Found ThenApplication.OrganizerDelete _Source:=ActiveDocument.Path & "\" & ActiveDocument.Name, _Name:=oStyle.NameLocal, Object:=wdOrganizerObjectStylesi = i + 1End IfEnd With'End IfNext oStyleMsgBox "共刪除" & i & "未使用樣式"Exit Sub '退出過程'發生錯誤時處理ErrorHandler:i = i - 1 '發生一次錯誤則減1Resume NextEnd Sub

以上介紹的是清理垃圾樣式的方法,並不完美。這只是合併文檔統一格式的一步,後面的路仍然任重而道遠,加油吧,少年!

關於清理word未使用的樣式,你有什麼更好的方法嗎?

相關焦點

  • 如何刪除word文檔中的空白頁
    我們通常在使用word寫文章或者論文的時候,大多數情況是需要給別人閱讀的,不管是電子版還是列印版本,如果word文檔中出現空白頁,就會很大程度上影響讀者的閱讀,那麼如何刪除word文檔中出現的空白頁呢,今天就給大家介紹一下三種不同情況出現的空白頁,應該如何刪除。
  • 如何用Python快速優雅的批量修改Word文檔樣式?
    模塊綜合應用docx模塊讀寫Word文檔及樣式修改需求描述手上現有若干份財務分析報告的Word文檔,如下:每一份Word文檔中的內容如下:Word文檔一般而言由文檔(document) - 段落(paragraph) - 文字塊(run)三級結構組成:從需求反饋中可以看出,本質上我們需要做的就是對所有含有資金的文字塊Run進行樣式調整因此,本需求的邏輯如下:
  • Word文檔怎麼刪除空白頁?學會了就很簡單
    相信很多人在使用Word過程中,往往也都會遇到這種情況,比如說在一個長篇文檔中,文檔最後一頁或者中間往往會存在一些空白頁,想刪除卻又刪除不了。那麼對於這種現象來說,又該如何去解決呢?下面WPSJC網就為大家介紹下,如何刪除word文檔中的空白頁?
  • word文檔怎麼自動生成目錄? word文檔自動生成目錄教程速Get
    word文檔怎麼自動生成目錄? word文檔自動生成目錄教程速Get時間:2018-06-26 19:52   來源:今日頭條   責任編輯:沫朵 川北在線核心提示:原標題:word文檔怎麼自動生成目錄? word文檔自動生成目錄教程速Get 很多小夥伴還不清楚word文檔怎麼自動生成目錄?
  • word中怎樣製作目錄? word文檔添加目錄圖文教程
    川北在線核心提示:原標題:word中怎樣製作目錄? word文檔添加目錄圖文教程 關於word中怎樣製作目錄的方法技巧大全 word中製作目錄方法一: 步驟一:右鍵單擊,新建一個word文檔,修改名稱為論文,並雙擊打開。
  • word怎麼新增和刪除編號格式
    在編輯word文檔時,經常對於分小點的內容使用編號,新建的word文檔默認帶了幾個編號,有時需要用到如第一條、第二條……時就需要自行定義了。2. 點擊菜單【段落】中的【編號】—【定義新編號格式】。3. 在「定義新編號格式」界面中選擇編號樣式「一,二,三…」,編號格式中在數字前輸入「第」,後面輸入「條」。4.
  • 圖文詳解|Word文檔各級標題一鍵排版
    本文介紹如何利用word的多級列表功能設置標題的新樣式(標籤、編號、字體、縮進等),利用這些新樣式一鍵排版正文與附錄章節的各級標題。圖文詳解| Word文檔各級標題一鍵排版。另外,按本文介紹的方式設置後,能將圖表、數學公式等對象的編號與正文和附錄章節的編號進行獨立的自動關聯(從而解決word文檔附錄設置的難點)。下面僅針對圖1所示的編號格式先給出視頻演示,接著用圖文進行詳細介紹。對照兩者,可以較快掌握各級標題的自動設置方法。在一個word文檔完成標題樣式設置,保存關閉後,這些樣式也會得到保存,再次打開後,不需要重新設置了。
  • 如何去掉word文檔中英文字母下的波浪線
    我們在編輯word文檔的時候,往往填寫一些英文字母信息,這個時候word文檔往往會出現波浪下劃線,給人一種不是很好的感覺,下面介紹下如何將其去掉打開word主界面 ,輸入英文內容,我們可以看到英文下的波浪線選中相應的英文內容信息,然後點擊工具欄上的「審閱」這個選項卡
  • word中快速應用表格樣式及表格樣式的修改——想像力電腦應用
    在前面的講解中,我們介紹了「word表格大小調整行列均分及精通設置表格大小」,這裡我們接著介紹「word快速應用表格樣式及設置表格中數據格式」,首先我們先來介紹一下「快速應用表格樣式」。在word 2013軟體中,提供了豐富的表格樣式庫,對於不經常操作表格或者是對表格的參數設置不是太熟練的初學都,我們可以利用「表格樣式庫」功能快速的製作出美觀的表格文檔;如果樣式不能很好的滿足我們的應用要求,我們也可以進行自定義設置表格的樣式。
  • word最後一頁空白頁怎麼刪除 手把手教你如何刪除Word最後一頁空白頁
    word最後一頁空白頁怎麼刪除 手把手教你如何刪除Word最後一頁空白頁時間:2017-06-14 13:53   來源:系統天堂   責任編輯:沫朵 川北在線核心提示:原標題:word最後一頁空白頁怎麼刪除 手把手教你如何刪除Word最後一頁空白頁 用過word的朋友都知道,word最後一頁常常出現空白頁。
  • 刪除word文檔的空白頁,最有效的2種方法!
    在平時使用word文檔進行編輯的時候,會遇到空白頁的情況,很多小夥伴不知道怎樣刪除空白頁,下面介紹2種刪除word文檔空白頁的有效方法!1刪除換行符如果是遇到空白頁當中有很多的換行符的時候,這時候使用刪除換行符的方法就可以解決,如果有很多換行符,可以將滑鼠放置在開頭,然後按住shift鍵,將滑鼠在空白頁的末尾單擊即可選中,然後按住鍵盤上的空格鍵即可刪除。
  • word中如何快速設置標題、生成目錄?這些樣式功能必不可少
    在word中,「樣式」佔據了開始選項卡幾乎三分之一空間,比字體和段落佔據的空間都要大,加上放在這麼明顯的地方,「樣式」功能的重要性不言而喻。但是大部分人看到「樣式」後可能只知道是用來添加標題級次的。但是添加標題級次有什麼用呢?如何有效使用樣式中的功能?本文就和小編一起來看看吧。
  • word如何創建「新樣式」 快速統一文檔格式?
    使用文檔中「新樣式」是一個很快捷的辦法!1、首先,單擊「開始」選項卡-「樣式」- 「新建樣式」。2、在「新建樣式」設置框中,填寫樣式名稱。後續段落樣式中建議選擇「正文」。這樣樣式就創建成功了,並且出現在「樣式」列表中。4、將需要更改格式的文字選中,單擊樣式類別中的「樣式2」就成功套用格式了。
  • word文檔如何橫向排版 word橫向排版
    在進行word文檔列印,或者編寫的時候,往往需要進行橫向排版,有幾頁需要進行橫向排版,有幾頁保持默認排版,下面介紹下如何進行排版首先打開要進行編輯,進行排版的word文檔,進入主界面中比如以當前該文檔頁需要設置橫向排版吧,點擊工具欄上的頁面布局按鈕在頁面布局菜單中
  • word目錄製作技巧:快速生成文檔總目錄和章節下子目錄
    編按:在使用Word製作長文檔時,目錄必不可少。有了目錄,無論是查找內容或閱讀內容都會更方便。但很多人卻不得其法,始終採用純手工輸入目錄。今天,小編將教大家自動生成主目錄和子目錄的方法,以後再也不用手動輸入了。學習更多技巧,請收藏關注部落窩教育word圖文教程。大家在製作標書或者論文等文檔的過程中,想必一定會遇到製作目錄的問題吧?
  • 誤會:WPS/Word頁面可以選中刪除
    對WPS文字或MS word頁面的誤會我經常收到這樣的問題:word的空白頁如何刪除?於是我在想,大家對WPS文字或MS word的頁面是不是有什麼誤會?一個頁面是可以選中刪除的?產生這種誤會的原因,恐怕是把通常的刪除操作經驗,如選中一個圖片然後刪除,選中一段文字然後刪除,直接推導到了文檔頁面上。
  • 《Word文檔的基本操作》100招技巧
    8、如何刪除WORD文檔所有空格空行 1)去多餘空行――在「編輯」菜單中選擇一是可以將橫線顏色設置成「白色」;二是在進入頁眉和頁腳時,設置表格和邊框為「無」;第三種方法是進入頁眉編輯,然後選中段落標記並刪除它;最後一種方法是將「樣式」圖標欄裡面的「頁眉」換成「正文」就行了。
  • Word排版神器,打造你專屬的默認樣式模板
    思考下面的問題,你會如何操作?新建文檔的默認字體,如何設為微軟雅黑?微軟雅黑五號字默認行距過大怎麼辦?小標題字號如何批量修改?3、菜單欄-開始-樣式-正文,右鍵-修改。4、修改「正文」樣式,進入「格式-段落」。5、由於中文版Word默認文檔網格設置問題,微軟雅黑五號字顯示行距過大。有兩種解決方法。
  • word圖文教程:如何製作分欄目錄
    學習更多技巧,請收藏部落窩教育word圖文教程。接下來,就為大家講解兩欄式目錄設置的方法。雙欄式目錄效果:注意:Word中生成目錄的首要條件是需要設置好文檔樣式和多級列表,(PS:如何設置文檔樣式和多級列表可參見「Word目錄還在手動輸入?來,教你3步輕鬆搞定!」一文)。
  • word文檔的處理:將word文檔轉為PDF格式
    我們在生活中,經常會需要將word轉換成PDF格式的。我們通常會下一些軟體來實現。現在word軟體就有帶這種轉換的功能,今天我們分享下怎麼運用。首先,我們雙擊滑鼠左鍵打開需要轉換的word文檔。現在我們點擊下圖所示的按鈕。