2016-11-06 319 views
1

我每週運行一次報告,我必須採取的一個步驟是刪除包含某個短語的行,在我的案例「CFS-GHOST-DJKT」中,在A列中。行通過7開始讀取,並有一個變量結束。如何使用excel VBA刪除第一列中包含特定代碼的行?

我在網上看了一下,按我發現下面的代碼應該工作,但我得到的和錯誤,它並不像符合細胞(Lrow,「A」)

我相信只要刪除部分去寫就可以,但問題在於選擇方面。

Firstrow = 7 
Lastrow = Cells(Rows.Count, "A").End(xlUp).Row 
    With Cells(Lrow, "A") 
     If Not IsError(.Value) Then 
      If .Value = "CFS-GHOST-DJKT" Then .EntireRow.Delete 
     End If 
    End With 

回答

1

按照你敘述(「我必須......刪除一個行」),你似乎打擾短語「CFS-GHOST-DJKT」

在這種情況下,還有的只出現一次不需要通過細胞迭代只是試圖找到它,如果成功,刪除整列

Dim f As Range 

    Set f = Range("A7", Cells(Rows.Count, "A").End(xlUp)).Find(what:="CFS-GHOST-DJKT", LookIn:=xlValues, lookat:=xlPart) 
    If Not f Is Nothing Then f.EntireRow.Delete 
+0

是的,只有一個出現在報告上,所以這是在 – Tribias

+0

。良好的編碼! – user3598756

3

在刪除時,您需要從最後一行迭代到第一行,否則您將最終跳過行。

Dim x As Long 
For x = Cells(Rows.Count, "A").End(xlUp).Row To 7 Step -1 
    If Cells(x, "A") = "CFS-GHOST-DJKT" Then Rows(x).Delete 
Next 
+0

這使得它不會報錯了這是一個加號,但沒有刪除含有「CFS-GHOST-DJKT」行 – Tribias

+0

想出了 Compi le錯誤: 預計:聲明結束 – Tribias

+0

這確實做了詭計! – Tribias

相關問題