Vba 删除表中不包含关键字的行

Vba 删除表中不包含关键字的行,vba,ms-word,Vba,Ms Word,现在我在Word文档中有一个很长的表,我是从Excel工作表填充的。它有6列,我试图用Word VBA编写一些代码,如果第一列中的单元格不是以等号开始,它将遍历表中的所有行并删除整行 例如,我只想保留包含如下文本的行: "=1+S -03F7", "=1+M -06M1", etc. etc. 我将如何编写此代码?我不能给代码任何特定的内容,因为等号后面的部分对于每一行都是不同的 所以这不管用,对吧 If Not ActiveDocument.Tables(83).Columns(1).Ra

现在我在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

“我从Excel工作表中填充的”是什么意思?你嵌入了OLE对象?你复制粘贴了吗?您是使用VBA创建表的吗?我有一个代码,可以从Excel自动在Word表中形成行,直到Excel工作表结束。它既不嵌入也不复制/粘贴。这是一个普通的表格,需要一些编辑,因为它是直接从Excel导入的。工作起来很有魅力!多谢各位