2014-03-19 21 views
1

我有列A,我要做的是搜索一個短語,說「測試」,然後如果發現這個短語刪除2行後。搜索一列,並刪除另一行,如果發現語句VBA

我可以看到如何刪除一行,如果在該行中找到該短語而不是如何刪除另一行。

+0

告訴我們你到目前爲止嘗試了些什麼。 –

+0

您可能正在尋找找到的範圍對象的偏移方法。例如。 'ws.Range(foundRange.Offset(1,0),foundRange.Offset(2,0))。EntireRow.Delete' –

回答

0

嘗試是這樣的:

Public Sub DeleteRowsIfFound() 
    Dim originCell As Range, numberOfRowsToDelete As Integer 
    Dim blankCellLimit As Integer, numberOfBlankCells As Integer 
    Dim label As String, index As Long, n As Integer 

    Set originCell = Me.Range("A1") 
    blankCellLimit = 5 
    numberOfRowsToDelete = 2 
    index = 0 
    label = "test" 

    Do 
     If originCell.Offset(index, 0).Value = label Then 
      For n = 0 To numberOfRowsToDelete - 1 
       originCell.Offset(index + 1, 0).EntireRow.Delete 
      Next 
     ElseIf originCell.Offset(index, 0).Value = "" Then 
      numberOfBlankCells = numberOfBlankCells + 1 
     End If 

     index = index + 1 
    Loop While numberOfBlankCells < blankCellLimit 
End Sub 

這開始向下搜索列A開始在單元格A1,如果它發現的小區,其值爲「測試」,然後它會刪除它後面接下來的兩行。

+0

這是完美的!由於Cor_Blimey對此進行了評論,我只是在研究Offset方法,但您已經徹底清除了所有內容!非常感謝! – JamieM

+0

很高興它對你有用。只是一個警告,如果它在另一個「測試」標記的兩行內,它將刪除列A中標有「test」的行。 – haddosm

+0

是的,這很好。只是一個簡單的問題 - 我修改了代碼,只刪除了下一行,我需要做的另一個過程,由於某種原因它現在說「Excel無法用可用資源完成此任務...」,後面跟着「1004」刪除方法的範圍類失敗「。知道任何原因爲什麼這將是?它突出顯示 - originCell.Offset(index + 1,0).EntireRow.Delete作爲問題 – JamieM

相關問題