2 种聪明的方法来按单词的长度对一列文本进行排序

立即分享:

在今天的文章中,我们将向您展示 2 种在 Word 中按长度对文本列进行排序的巧妙方法。

有几种方法可以对表格中的一列文本或数字进行排序。 但是,你有没有想过按长度对一列文本进行排序? 在这种情况下,您的文档布局将更加清晰易读。

但是,Word 中没有直接的方法让我们按此规则进行排序。 因此,我们必须寻找解决方法来解决问题。按长度对文本列进行排序

方法一:使用Word VBA

例如,假设我们有一个如下表:原始表

  1. 首先,在WordPress中按“Alt+F11”即可启动VBA编辑器。
  2. 单击左侧栏中的“正常”以创建新模块。
  3. 然后单击“插入”选项卡并在下拉菜单中选择“模块”。点击“普通”->点击“插入”->点击“模块”
  4. 接下来双击模块将其打开并将下面的宏粘贴到那里:
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

将“真”替换为“假”。

  1. 接下来点击“运行”。粘贴代码->点击“运行”
  2. 然后,在第一个打开的框中,输入目标列的列号,例如第二列输入“2”。
  3. 点击“确定”。输入列号->单击“确定”
  4. 在第二个框中,输入一个数字以指定排序规则。 “0”表示升序排列,“1”表示降序排列。
  5. 同样,点击“确定”。输入数字指定排序规则->单击“确定”

检查效果:影响

方法 2:在 Excel 中排序

  1. 首先,在Word中选中表格,按“Ctrl+C”复制。
  2. 接下来打开 Excel 并按“Ctrl+V”粘贴它。 现在,如果您的表格没有标题行,则将表格粘贴到单元格 A2 中。
  3. 然后单击列的列字母。例如,假设目标列是 C 列。您将看到已选中的总计列。
  4. 接下来右键单击并选择“插入”。右击->选择“插入”
  5. 在 C 列之前将有一个新列。将光标定位在新列的第二个单元格上。
  6. 在单元格 B2 中输入“=LEN(C2)”。 请记住将“C”替换为实际的“C”。
  7. 接下来将光标放在单元格 B2 的右下角,直到它变成十字。
  8. 现在双击。 您将看到新列中填满了数字。 这些是 C 列中文本的字符数。带有字符编号的新列
  9. 在单元格 B1 中输入您喜欢的任何内容。 只是不要留空。
  10. 将光标放在 B 列中具有数字的任何单元格中。
  11. 转到单击“主页”选项卡,然后单击“排序和筛选”。
  12. 在下拉菜单中,选择“从最小到最大排序”或“从最大到最小排序”。点击“首页”->点击“排序&过滤”->选择排序规则
  13. 最后,选中新插入的列,右击选择“删除”。 并将表格粘贴回 Word 文档。

修复损坏的文件

你认为存储在电脑上的文档安全吗?即使你能保护电脑免受攻击,文档丢失的可能性仍然存在。所以请记住,你的文件可能并非绝对安全。因此,采取一些措施来确保文档安全。 docx恢复 提前工具将是一个不错的选择。

作者简介:

Vera Chen 是一位数据恢复专家 DataNumen, Inc.,它是数据恢复技术领域的世界领先者,包括 损坏的 xls 和 pdf 修复软件产品。 欲了解更多信息,请访问 datanumen.com

立即分享:

评论被关闭。