VBA:偏移量函数不适用于自动筛选的范围



我有一个数据集,我希望在其中根据指定的条件筛选和删除所有筛选的行。

我下面的代码运行得很好,只是每次迭代都会删除标题行。我希望.Offset(1,0(函数能解决这个问题,但到目前为止运气不好。

i = 0 'Variável de apoio (contador)
selecao = Array("GRUPO CARREFOUR - VAR", "GRUPO SONAE - VAR", "GRUPO WAL MART - VAR") 'Lista com os Clientes a serem filtrados

Do While i < 3:
With Worksheets(pasta2).range("A1")
.AutoFilter Field:=5, Criteria1:=selecao(i)
.Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With

Worksheets(pasta2).AutoFilterMode = False

i = i + 1
Loop

有人知道如何解决这个问题吗?提前感谢!

找到工作表上的最后一行,然后在上定义调用SpecialCells的范围

With Worksheets(pasta2)
Dim lastRow as Long
lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
.Range("A1").AutoFilter Field:=5, Criteria1:=selecao(i)
On Error Resume Next '<~ ignore error if no visible cells
.Range("A2:A" & lastRow).SpecialCells(xlCellTypeVisible).EntireRow.Delete
On Error GoTo 0
.AutoFilterMode = False
End With

最新更新