删除表中的一行,如果它不包含关键字

问题描述:

现在我在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列,不列本身...此外,这是行不通的,因为它只是寻找对于只有等号的东西......而且我不知道如何找到没有等号的单元格来选择该行。我不知道如何在第一栏的单元格中进行匹配。

+0

你是什么意思'我从Excel工作表中填充'?你嵌入一个OLE对象?你复制并粘贴?你使用VBA创建表? –

+0

我有一个代码,它自动在Excel表格中从Excel表格中直到Excel工作表的末尾。它没有嵌入也没有被复制/粘贴。这是一个普通表,需要进行一些编辑,因为它直接从Excel导入。 – idk123

您可以使用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