VBA: .Offset 函数不适用于自动过滤范围
VBA: .Offset function not working for Autofiltered range
我有一个数据集,我希望在其中根据指定的条件过滤和删除所有过滤的行。
我下面的代码运行良好,除了它还会在每次迭代中删除 header 行。我希望 .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
有人知道如何解决这个问题吗?
提前致谢!
找到 sheet 上的最后一行,然后在 :
上划定您要调用 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
我有一个数据集,我希望在其中根据指定的条件过滤和删除所有过滤的行。
我下面的代码运行良好,除了它还会在每次迭代中删除 header 行。我希望 .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
有人知道如何解决这个问题吗? 提前致谢!
找到 sheet 上的最后一行,然后在 :
上划定您要调用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