In het artikel van vandaag laten we je 2 slimme manieren zien om een kolom met teksten op lengte te sorteren in je Word.
Er zijn verschillende manieren om een kolom met teksten of getallen in een tabel te sorteren. Maar heb je er wel eens aan gedacht om een kolom met teksten op lengte te sorteren? In dat geval zal uw documentlay-out duidelijker en gemakkelijker te lezen zijn.
Er is echter geen directe manier in Word om in deze regel te sorteren. Daarom moeten we zoeken naar tijdelijke oplossingen om het probleem op te lossen.
Methode 1: gebruik Word VBA
Laten we bijvoorbeeld zeggen dat we een tabel hebben zoals hieronder:
- Om te beginnen, druk in Word op "Alt+F11" om de VBA-editor te openen.
- Ga naar het aanmaken van een nieuwe module door in de linkerkolom op "Normaal" te klikken.
- Klik vervolgens op het tabblad "Invoegen" en kies "Module" in het vervolgkeuzemenu.
- Dubbelklik vervolgens op de module om deze te openen en plak de onderstaande macro daar:
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
Note:
Als uw tabel geen koprij bevat, moet u de volgende coderegel wijzigen:
Selection.Sort ExcludeHeader:=True
Vervang "Waar" door "Onwaar".
- Klik vervolgens op "Uitvoeren".
- Voer vervolgens in het eerste geopende vak het kolomnummer van de doelkolom in, bijvoorbeeld "2" voor de tweede kolom.
- Klik OK".
- Voer in het tweede vak een nummer in om een sorteerregel op te geven. "0" staat voor sorteren door oplopend, "1" door aflopend.
- Klik op dezelfde manier op "OK".
Controleer het effect:
Methode 2: sorteren in Excel
- Selecteer eerst de tabel in Word en druk op "Ctrl + C" om deze te kopiëren.
- Open vervolgens Excel en plak het door op "Ctrl + V" te drukken. Als uw tabel geen koprij heeft, plakt u de tabel in cel A2.
- Klik vervolgens op de kolomletter van de betreffende kolom. Stel dat kolom C de doelkolom is. U ziet dan de kolom 'Totaal' in de selectie.
- Klik vervolgens met de rechtermuisknop en kies "Invoegen".
- Er komt een nieuwe kolom voor kolom C. Plaats de cursor op de tweede cel van de nieuwe kolom.
- Typ "=LEN(C2)" in cel B2. Vergeet niet om de "C" te vervangen door een echte.
- Plaats vervolgens de cursor in de rechterbenedenhoek van cel B2 totdat deze verandert in een kruis.
- Dubbelklik nu. U ziet de nieuwe kolom gevuld met getallen. Dit zijn aantal karakters voor de teksten in kolom C.
- Voer alles in wat u maar wilt in cel B1. Laat het gewoon niet leeg.
- Plaats de cursor in een willekeurige cel in kolom B die een nummer heeft.
- Ga naar het tabblad "Start" en klik op "Sorteren en filteren".
- Kies in het vervolgkeuzemenu "Sorteren van klein naar groot" of "Sorteren van groot naar klein".
- Selecteer ten slotte de nieuw ingevoegde kolom en klik met de rechtermuisknop om "Verwijderen" te kiezen. En plak de tabel terug naar Word-document.
Herstel corrupte documenten
Denkt u dat uw documenten op uw computer veilig zijn? Zelfs als u uw computer beschermt tegen aanvallen, bestaat er nog steeds een kans dat documenten verloren gaan. Houd er dus rekening mee dat uw bestanden mogelijk niet volledig veilig zijn. Schaf daarom een back-up aan. docx herstel hulpmiddel vooraf zou een goede keuze zijn.
Auteur Introductie:
Vera Chen is een expert op het gebied van gegevensherstel in DataNumen, Inc., de wereldleider in technologieën voor gegevensherstel, waaronder beschadigde xls en pdf reparatie softwareproducten. Voor meer informatie bezoek www.datanumen.com







