如何在Microsoft Word 2013中反转按时间排序的标题顺序?
Reversing Chronological Headings in Microsoft Word 2013
Got it, let's get those headings flipped from oldest-to-newest to newest-to-oldest. I've got two solid methods for you—one manual (great if you don't have tons of headings) and one automated (perfect for dozens of entries like yours):
Method 1: Manual Reversal Using Outline View
This works well if you want to keep things simple and have full control over each entry:
- Open your Word 2013 doc and switch to Outline View (go to the
Viewtab at the top, then clickOutline). - In the Outline toolbar, hit the
Expand Allbutton (the one with a plus sign) so you can see all your headings clearly. - If you need to reverse headings along with their associated content, click the small plus icon to the left of each heading to select the entire block. Copy these blocks one by one into a new blank Word document—but paste them in reverse order: start with the last (newest) heading from your original doc, then the second-last, and so on until you’ve pasted the first (oldest) entry.
- Once done, you can copy the reversed content back into your original document or use the new doc as your updated version.
Method 2: Automated Reversal with VBA Macro
If you’ve got dozens of headings, manually moving them is a total drag. A quick VBA macro will handle this in seconds:
- Open your Word 2013 doc, press
Alt + F11to open the VBA Editor. - Right-click your document in the Project Explorer on the left, hover over
Insert, then clickModule. - Paste the following code into the new module window:
Sub ReverseHeadings() Dim doc As Document Dim headings As Collection Dim i As Integer Dim rng As Range Set doc = ActiveDocument Set headings = New Collection ' Collect all Heading 1 style paragraphs (adjust style name if your headings use another style) For Each rng In doc.StoryRanges Do If rng.Style = "Heading 1" Then ' Add the entire heading block (heading + linked content) to the collection Set rng = rng.GoTo(What:=wdGoToBookmark, Name:="\HeadingLevel") headings.Add rng.Duplicate End If Set rng = rng.NextStoryRange Loop Until rng Is Nothing Next rng ' Remove original headings and content For i = headings.Count To 1 Step -1 headings(i).Delete Next i ' Paste reversed headings at the start of the document (adjust location if needed) For i = headings.Count To 1 Step -1 doc.Range(0, 0).InsertAfter headings(i).Text doc.Range(0, 0).InsertParagraphBefore Next i End Sub - Adjust the style name (
"Heading 1") in the code if your headings use a different style (like Heading 2 or a custom style name). - Press
F5or click the play button in the VBA Editor to run the macro. It’ll collect all your heading blocks, delete the original entries, and paste them in reverse order.
Quick Tips:
- Always save a backup of your document before running macros—better safe than sorry!
- If you only want to reverse the headings themselves (not the content under each), tweak the macro to collect only the heading paragraph instead of the entire block.
内容的提问来源于stack exchange,提问作者Stevoisiak
相关产品推荐
相关产品推荐

