如何按特定字符串对单词 table 进行排序,这是第一列每一行内的时间 HH:MM

How can I sort a word table by specific string, which is a time like HH:MM inside each line of the first column

我有一个word文档,里面有3个table(如下图),我需要按照第一列每行里面显示的小时进行排序(遇到第一次引用) .如果我应用盲目排序,例如:

ActiveDocument.Tables(1).Sort ExcludeHeader:= true, SortOrder:=wdSortOrderAscending

在 table 上,它不是以时间参考开头,而是以其他时间开头,这种类型的排序将无法按我的需要进行。它只会考虑每行中找到的第一个单词。 谁能知道如何解决这个问题? 举个例子,考虑这样的 table:

描述

HEADER1 HEADER2
Às 11.00 iniciou.se a do Gr.# da NNN. F
Às 16.18 iniciou-se a do Gr.# da FFF. G
Das 07.05 às 16.57 a Bateria de Condensadores # da CCC. K
Das 07.22 às 16.24 a do disjuntor IBBP de 400 kV da KKK. D
Das 08.10 às 16.58 a do disjuntor # do módulo ## do PPPPP. Y
Das 08.27 às 17.34 a do disjuntor IBBP de 220 kV da LLLL. S
Das 09.00 iniciou-se a do Gr.# da JJ. H
Das 10.00 às 14.59 os Gr.#, Gr.# e Gr.# da VVV. R
Das 10.04 às 19.16 a Reactância Shunt da GGGG. H
Das 14.00 às 15.23 o Gr.# e das 14.00 às 16.11 o Gr.# da HHH. U
Das 14.00 às 16.55 o Gr.# da MMM. A

所以我不知道每行的开头词,但我需要在排序过程中忽略它们。我可以为 word 文档 (docm) 使用一些 vba 吗?

例如:

Sub Demo()
Application.ScreenUpdating = False
Dim Tbl As Table, r As Long
For Each Tbl In ActiveDocument.Tables
  With Tbl
    .Columns.Add beforecolumn:=.Columns(1)
    For r = 2 To .Rows.Count
      .Cell(r, 1).Range.Text = .Cell(r, 2).Range.Words.First
      .Cell(r, 2).Range.Words.First.Text = vbNullString
    Next
    .Sort ExcludeHeader:=True, FieldNumber:="Column 2", _
      SortFieldType:=wdSortFieldAlphanumeric, _
      SortOrder:=wdSortOrderAscending
    For r = 1 To .Rows.Count
      .Cell(r, 1).Merge Mergeto:=.Cell(r, 2)
      .Cell(r, 1).Range.Paragraphs.First.Range.Characters.Last.Text = vbNullString
    Next
  End With
Next
Application.ScreenUpdating = True
End Sub