复制包含特定文本的行上方的行

我有一个代码来复制整个行,如果列B包含一个特定的文本(“ACK-”,但现在我需要复制整个行正上方具有特定的文本(“ACK-”。这甚至可能吗?任何帮助将不胜感激。

Sub HEA_Filter() Dim strArray As Variant Dim wsSource As Worksheet Dim wsDest As Worksheet Dim NoRows As Long Dim DestNoRows As Long Dim I As Long Dim J As Integer Dim rngCells As Range Dim rngFind As Range Dim Found As Boolean strArray = Array("ack-") Set wsSource = ActiveSheet NoRows = wsSource.Range("A65536").End(xlUp).Row DestNoRows = 1 Set wsDest = Sheets("Real Alarms") For I = 1 To NoRows Set rngCells = wsSource.Range("B" & I) Found = False For J = 0 To UBound(strArray) Found = Found Or Not (rngCells.Find(strArray(J)) Is Nothing) Next J If Found Then rngCells.EntireRow.Copy wsDest.Range("A" & DestNoRows) DestNoRows = DestNoRows + 1 End If Next I End Sub 

要引用“上面的行” ,可以使用Range.Offset方法:

 rngCells.Offset(-1).EntireRow.Copy wsDest.Range("A" & DestNoRows) ' ^^^^^^^^^^^^ 

但是,请注意,如果范围位于第1行,则会产生运行时错误,因为row 0不存在。 您可能想要添加一个检查,例如:

 If rngCells.Row > 1 Then rngCells.Offset(-1).EntireRow.Copy ...