Как удалить числа в Excel Filter - PullRequest
0 голосов
/ 17 января 2019

У меня есть данные от столбца A до F, и я хочу отфильтровать столбец E и удалить всю строку, которая содержит # и только цифры. (Проверьте изображение). Я использовал код, и он работает для #, но цифры нет. В фильтре «Числовой фильтр» недоступен, поэтому я не могу записать в макросе.

Как изменить код? Помогите мне, пожалуйста.

enter image description here

Sub Macro3()
Dim ws As Worksheet
Dim rng1 As Range

Set ws = Sheets("Sheet1")
Set rng1 = ws.Range(ws.[A2], ws.Cells(Rows.Count, "F").End(xlUp))

With ActiveSheet
        .AutoFilterMode = False
        rng1.AutoFilter Field:=5, Criteria1:="#"
        rng1.Offset(1, 0).EntireRow.Delete
        .AutoFilterMode = False
End With
End Sub

1 Ответ

0 голосов
/ 17 января 2019

Вы можете использовать Criteria1:=">=0", чтобы найти все числа.

rng1.AutoFilter Field:=5, Criteria1:=">=0", Operator:=xlAnd

Dim RowsToDelete As Range
On Error Resume Next
Set RowsToDelete = rng1.Resize(RowSize:=rng1.Rows.Count - 1).Offset(RowOffset:=1).SpecialCells(xlCellTypeVisible).EntireRow
On Error GoTo 0

If Not RowsToDelete Is Nothing Then RowsToDelete.Delete

Примечание:

  • rng1.Resize(RowSize:=rng1.Rows.Count - 1).Offset(RowOffset:=1)
    удаляет заголовок из выбора rng1

  • .SpecialCells(xlCellTypeVisible).EntireRow
    выбирает только видимые ячейки отфильтрованного диапазона.

...