オートフィルターを使用して、列に特定の値を含むすべての行を削除しようとしています。なんらかの理由で意図したとおりに動作せず、指定された値を持つ行の一部のみが削除されます。その理由を突き止めることにしました。
私のコードは次のように簡単です:
Function GetRowRange(sheet, column, value) As Range
'check for a valid section column
sheet.AutoFilterMode = False
sheet.UsedRange.AutoFilter Field:=column, Criteria1:=value
Set GetRowRange = sheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible)
sheet.AutoFilterMode = False
End Function
With GetRowRange(importsheet, importsheet.UsedRange.Find("stato_4").column, "0")
.Offset(1, 0).Resize(.Rows.Count - 1, .Columns.Count).Delete
End With
更新 しても意味がない。削除機能を次のように変更しようとしています。
For Each Row In GetRowRange(importsheet, importsheet.UsedRange.Find("stato_4").column, "0").Offset(1, 0).Rows
Row.EntireRow.Delete
iront = iront + 1
Next
MsgBox iront
範囲内に 42 行 (iront = 42) があることを認識しますが、どれも削除されません。