I dagens artikel kommer vi att visa dig två smarta sätt att sortera en textkolumn efter längd i ditt Word.
Det finns flera sätt att sortera en kolumn med texter eller siffror i en tabell. Men har du någonsin funderat på att sortera en textkolumn efter längd? I så fall blir din dokumentlayout tydligare och lättare att läsa.
Det finns dock inget direkt sätt i Word för oss att sortera i denna regel. Därför måste vi leta efter lösningar för att lösa problemet.
Metod 1: Använd Word VBA
Låt oss till exempel säga att vi har ett bord som nedan:
- Först och främst, tryck på "Alt+F11" i Word för att starta VBA-editorn.
- Gå till för att skapa en ny modul genom att klicka på “Normal” i den vänstra kolumnen.
- Klicka sedan på fliken "Infoga" och välj "Modul" i rullgardinsmenyn.
- Nästa dubbelklicka på modulen för att öppna den och klistra in det böljande makrot där:
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
Anmärkningar:
Om din tabell inte innehåller någon rubrikrad måste du ändra följande kodrad:
Selection.Sort ExcludeHeader:=True
Byt ut ”True” med ”False”.
- Klicka sedan på "Kör".
- Ange sedan kolumnnumret för målkolumnen i den första rutan som öppnas, till exempel "2" för den andra kolumnen.
- Klicka på "OK".
- I den andra rutan anger du ett nummer för att ange en sorteringsregel. "0" representerar sortering efter stigande, "1" efter fallande.
- Klicka också på “OK”.
Kontrollera effekten:
Metod 2: Sortera i Excel
- Välj först en tabell i Word och tryck på "Ctrl + C" för att kopiera den.
- Öppna sedan Excel och klistra in det genom att trycka på "Ctrl + V". Nu om din tabell inte har någon rubrikrad klistrar du sedan in tabellen i cell A2.
- Klicka sedan på kolumnbokstaven för kolumnen. Låt oss till exempel säga att kolumn C är målkolumnen. Du kommer att se hela kolumnen i markeringen.
- Nästa högerklicka och välj ”Infoga”.
- Det kommer att finnas en ny kolumn före kolumn C. Placera markören vid den andra cellen i den nya kolumnen.
- Ange "= LEN (C2)" i cell B2. Kom ihåg att byta ut "C" med en faktisk.
- Sätt sedan markören längst ner till höger i cell B2 tills den ändras till ett kors.
- Dubbelklicka nu. Du kommer att se den nya kolumnen fylld med siffror. Dessa är antalet tecken för texterna i kolumn C.
- Ange vad du vill i cell B1. Lämna det inte tomt.
- Sätt markören i valfri cell i kolumn B som har ett nummer.
- Klicka på fliken "Hem" och klicka på "Sortera och filtrera".
- På rullgardinsmenyn väljer du “Sortera minsta till största” eller “Sortera största till minsta”.
- Välj slutligen den nyligen infogade kolumnen och högerklicka för att välja "Ta bort". Och klistra in tabellen tillbaka till Word-dokumentet.
Reparera korrupta dokument
Tror du att dina dokument som lagras på datorer är säkra? Även du kan skydda din dator från attacker. Det finns fortfarande risk att dokument förloras. Så tänk på att din fil kanske inte är helt säker. Skaffa därför en docx-återhämtning verktyg i förväg skulle vara ett bra val.
Författarintroduktion:
Vera Chen är en dataåterställningsexpert i DataNumen, Inc., som är världsledande inom teknik för återställning av data, inklusive skadade xls och pdf reparera programvaruprodukter. För mer information besök www.datanumen.com







