在今天的文章中,我們將向您展示 2 種在 Word 中按長度對文本列進行排序的巧妙方法。
有幾種方法可以對錶格中的一列文本或數字進行排序。 但是,你有沒有想過按長度對一列文本進行排序? 在這種情況下,您的文檔佈局將更加清晰易讀。
但是,Word 中沒有直接的方法讓我們按此規則進行排序。 因此,我們必須尋找解決方法來解決問題。
方法1:使用Word VBA
例如,假設我們有一個如下表:
- 首先,在WordPress中按下「Alt+F11」即可啟動VBA編輯器。
- 單擊左側欄中的“正常”以創建新模塊。
- 然後單擊“插入”選項卡,然後在下拉菜單上選擇“模塊”。
- 接下來雙擊模塊將其打開並將下面的宏粘貼到那裡:
Sub SortByWordLength()
Dim objTable As Table
Dim objColumnCell As Cell
Dim objColumnCellRange As Range
Dim objNewColumnCellRange As Range
Dim nRowNumber As Integer
Dim nColumnNumber As Integer
Dim strWordLenth As String
Dim nSortOrder As Integer
Dim nCurrentTableIndex As Integer
Dim nTableColumnsInCurrentTable As Integer
nCurrentTableIndex = ActiveDocument.Range(0, Selection.Tables(1).Range.End).Tables.Count
nTableColumns = ActiveDocument.Tables(nCurrentTableIndex).Columns.Count
nColumnNumber = InputBox("Enter the column number you want to sort", "Column Number", "For example:2")
If nColumnNumber > 0 And nColumnNumber <= nTableColumns Then
nSortOrder = InputBox("Choose the sort order:" & vbNewLine & "If you want to sort by descending, click 1" & vbNewLine & "If you want to sort by ascending, click 0", "Sort Order", "For example:1")
If nSortOrder = 1 Or nSortOrder = 0 Then
' Add a new column to put the word length of the specified column.
Set objTable = ActiveDocument.Tables(nCurrentTableIndex)
objTable.Columns.Add BeforeColumn:=objTable.Columns(nColumnNumber)
nRowNumber = 1
For Each objColumnCell In objTable.Columns(nColumnNumber + 1).Cells
Set objColumnCellRange = objColumnCell.Range
objColumnCellRange.MoveEnd Unit:=wdCharacter, Count:=-1
Set objNewColumnCellRange = objTable.Cell(nRowNumber, nColumnNumber).Range
objNewColumnCellRange.MoveEnd Unit:=wdCharacter, Count:=-1
strWordLenth = Len(objColumnCellRange.Text)
objNewColumnCellRange.InsertAfter (strWordLenth)
nRowNumber = nRowNumber + 1
Next objColumnCell
objTable.Select
' Sort by the word length.
Selection.Sort ExcludeHeader:=True, FieldNumber:="Column " & nColumnNumber, SortFieldType:= _
wdSortFieldNumeric, SortOrder:=nSortOrder, FieldNumber2:="", _
SortFieldType2:=wdSortFieldAlphanumeric, SortOrder2:=wdSortOrderAscending _
, FieldNumber3:="", SortFieldType3:=wdSortFieldAlphanumeric, SortOrder3:= _
wdSortOrderAscending, Separator:=wdSortSeparateByCommas, SortColumn:= _
False, CaseSensitive:=False, LanguageID:=wdEnglishUS, SubFieldNumber:= _
"Paragraphs", SubFieldNumber2:="Paragraphs", SubFieldNumber3:="Paragraphs"
objTable.Columns(nColumnNumber).Delete
Else
MsgBox ("Invalid sort type, please try again")
End If
Else
MsgBox ("Invalid column number, please try again")
End If
End Sub
備註:
如果您的表不包含標題行,則需要更改以下代碼行:
Selection.Sort ExcludeHeader:=True
將“真”替換為“假”。
- 接下來單擊“運行”。
- 然後,在第一個開啟的方塊中,輸入目標列的列號,例如第二列輸入「2」。
- 點擊“確定”。
- 在第二個框中,輸入一個數字以指定排序規則。 “0”表示升序排列,“1”表示降序排列。
- 同樣,點擊“確定”。
檢查效果:
方法 2:在 Excel 中排序
- 首先,在Word中選中表格,按“Ctrl+C”複製。
- 接下來打開 Excel 並按“Ctrl+V”粘貼它。 現在,如果您的表格沒有標題行,則將表格粘貼到單元格 A2 中。
- 然後點選列的列字母。例如,假設目標列是 C 列。您將看到已選取的總計列。
- 接下來,右鍵單擊並選擇“插入”。
- 在 C 列之前將有一個新列。將光標定位在新列的第二個單元格上。
- 在單元格 B2 中輸入“=LEN(C2)”。 請記住將“C”替換為實際的“C”。
- 接下來將光標放在單元格 B2 的右下角,直到它變成十字。
- 現在雙擊。 您將看到新列中填滿了數字。 這些是 C 列中文本的字符數。
- 在單元格 B1 中輸入您喜歡的任何內容。 只是不要留空。
- 將光標放在 B 列中具有數字的任何單元格中。
- 轉到單擊“主頁”選項卡,然後單擊“排序和篩選”。
- 在下拉菜單中,選擇“從最小到最大排序”或“從最大到最小排序”。
- 最後,選中新插入的列,右擊選擇“刪除”。 並將表格粘貼回 Word 文檔。
修復損壞的文件
你認為儲存在電腦上的文件安全嗎?即使你能保護電腦免受攻擊,文件遺失的可能性仍然存在。所以請記住,你的文件可能並非絕對安全。因此,採取一些措施來確保文件安全。 docx恢復 提前工具將是一個不錯的選擇。
作者簡介:
陳薇薇(Vera Chen)是 DataNumen,Inc.是數據恢復技術的全球領導者,包括 損壞的XLS 以及 pdf 維修軟件產品。 欲了解更多信息,請訪問 萬維網。datanumen.COM







