2015-07-10 109 views
1

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

回答

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

相關問題