删除表中的一行,如果它不包含关键字
问题描述:
现在我在Word文档中有一个非常长的表,我从Excel工作表中填充。它有6列,我试图在Word VBA中编写一些将通过表中的所有行并删除整行的内容,如果第一列中的单元格不以等号开头("=")
。删除表中的一行,如果它不包含关键字
例如,我只是试图让有类似文本行,
"=1+S -03F7", "=1+M -06M1", etc. etc.
我将如何代码呢?由于等号后面的部分对于每一行都是不同的,我不能给代码提供任何具体的查找。
所以这是行不通的,对不对?:
If Not ActiveDocument.Tables(83).Columns(1).Range.Text = "=" Then
EntireRow.Select
Selection.Delete
我想我应该参照细胞1列,不列本身...此外,这是行不通的,因为它只是寻找对于只有等号的东西......而且我不知道如何找到没有等号的单元格来选择该行。我不知道如何在第一栏的单元格中进行匹配。
答
您可以使用Rows属性遍历表中的行。然后,您可以使用Cells属性找到该行中的第一个单元格。然后你可以检查范围的第一个字符:
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
+0
工作就像一个魅力!非常感谢 – idk123
你是什么意思'我从Excel工作表中填充'?你嵌入一个OLE对象?你复制并粘贴?你使用VBA创建表? –
我有一个代码,它自动在Excel表格中从Excel表格中直到Excel工作表的末尾。它没有嵌入也没有被复制/粘贴。这是一个普通表,需要进行一些编辑,因为它直接从Excel导入。 – idk123