删除 table 中不包含关键字的行
Removing a row in a table if it doesn't contain keyword
现在我在 Word 文档中有一个非常长的 table,我从 Excel 工作表中填充了它。它有 6 列,我正在尝试在 Word VBA 中编写一些代码,这些代码将遍历 table 中的所有行,如果第一列中的单元格不以 an 开头,则删除整行等号 ("=")
。
例如,我只是想保留包含如下文本的行,
"=1+S -03F7", "=1+M -06M1", etc. etc.
我该如何编码?我无法为代码提供任何具体的查找内容,因为等号后的部分对于每一行都是不同的。
所以这行不通,对吧?:
If Not ActiveDocument.Tables(83).Columns(1).Range.Text = "=" Then
EntireRow.Select
Selection.Delete
我想我应该引用第 1 列中的单元格,而不是列本身...另外,它不起作用,因为它只查找带有等号的东西...而且我不知道如果找到没有等号的单元格,我如何才能将它转到 select 行。我不知道如何在第一列的单元格中按大小写匹配。
您可以使用行 属性 遍历 table 中的行。然后,您可以使用单元格 属性 找到该行中的第一个单元格。然后您可以只检查范围的第一个字符:
Sub DeleteUnwantedRows()
Dim t As Table
Dim r As Row
Set t = ActiveDocument.Tables(1)
For Each r In t.Rows
If r.Cells(1).Range.Characters(1) <> "=" Then r.Delete
Next r
End Sub
现在我在 Word 文档中有一个非常长的 table,我从 Excel 工作表中填充了它。它有 6 列,我正在尝试在 Word VBA 中编写一些代码,这些代码将遍历 table 中的所有行,如果第一列中的单元格不以 an 开头,则删除整行等号 ("=")
。
例如,我只是想保留包含如下文本的行,
"=1+S -03F7", "=1+M -06M1", etc. etc.
我该如何编码?我无法为代码提供任何具体的查找内容,因为等号后的部分对于每一行都是不同的。
所以这行不通,对吧?:
If Not ActiveDocument.Tables(83).Columns(1).Range.Text = "=" Then
EntireRow.Select
Selection.Delete
我想我应该引用第 1 列中的单元格,而不是列本身...另外,它不起作用,因为它只查找带有等号的东西...而且我不知道如果找到没有等号的单元格,我如何才能将它转到 select 行。我不知道如何在第一列的单元格中按大小写匹配。
您可以使用行 属性 遍历 table 中的行。然后,您可以使用单元格 属性 找到该行中的第一个单元格。然后您可以只检查范围的第一个字符:
Sub DeleteUnwantedRows()
Dim t As Table
Dim r As Row
Set t = ActiveDocument.Tables(1)
For Each r In t.Rows
If r.Cells(1).Range.Characters(1) <> "=" Then r.Delete
Next r
End Sub