Я нашел и изменил приведенный ниже код, чтобы удалить все строки, которые не содержат "NHO_Global" в столбце F, но он удаляет все (хотя и оставляет строку заголовка).
Что я сделал не так и как я могу это исправить? Мне нужно, чтобы в столбце F оставались только строки, содержащие "NHO_Global" (просто фильтрация не подойдет для моих целей - их нужно удалить).
Sub KeepOnlyNHOGlobal()
Dim ws As Worksheet
Dim rng As Range
Dim lastRow As Long
Set ws = ActiveWorkbook.Sheets("NHO_Global")
lastRow = ws.Range("F" & ws.Rows.Count).End(xlUp).Row
Set rng = ws.Range("F1:F" & lastRow)
'Filter and delete all but the header row
With rng
.AutoFilter Field:=1, Criteria1:="<>NHO_GLOBAL"
.Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
'Turn off the filters
ws.AutoFilterMode = False
End Sub
ОБНОВЛЕНИЕ: оказывается, что проблема была в том, чтобы включить фильтры (даже если они не были применены). Отключение фильтров позволило коду работать должным образом.