Макрос для удаления только значений 0,00, а не 150,00 и т. д.

Я создал макрос для поиска столбца и удаления всей строки, если значение равно 0,00. Проблема в том, что он также удаляет все строки, содержащие эту строку, например 140,00, 150,00 и т. д., поэтому я теряю хорошие данные. Не знаете, как исправить?

Мой макрос:

Dim c As Range
Dim SrchRng

Set SrchRng = ActiveSheet.Range("J5", ActiveSheet.Range("J65536").End(xlUp))
Do
    Set c = SrchRng.Find("0.00", LookIn:=xlValues)
    If Not c Is Nothing Then c.EntireRow.Delete
Loop While Not c Is Nothing

Спасибо за любую помощь


person Riddell_13    schedule 31.03.2017    source источник
comment
в ячейках только число?   -  person ballsy26    schedule 31.03.2017
comment
может искать " 0.00" (спереди есть пробел), если в ячейке содержится другой текст, в противном случае добавьте LookAt:=xlWhole к вашим .Find параметрам   -  person ballsy26    schedule 31.03.2017
comment
Да, в ячейках только цифры   -  person Riddell_13    schedule 31.03.2017
comment
добавление пробела, похоже, сработало. Сэкономил мне много времени. Не знаю, почему я не подумал об этом.   -  person Riddell_13    schedule 31.03.2017
comment
Спасибо, какая помощь   -  person Riddell_13    schedule 31.03.2017


Ответы (2)


Попробуйте следующее:

For i = ActiveSheet.UsedRange.Columns("J").Cells.Count to 5 Step -1
    If Range("J" & i).Value = 0# Then Range("J" & i).EntireRow.Delete
Next

Попробуйте и дайте мне знать ваши комментарии

person 3vts    schedule 31.03.2017

вы можете удалить нужные строки одним выстрелом:

With Range("J4", Cells(Rows.Count, "J").End(xlUp)) '<--| assuming "J4" cell is the "header" of data in cells from "J5" down to last column J not empty cell
    .AutoFilter Field:=1, Criteria1:="0.00" '<--| filtre cells whose content is "0.00"
    If Application.WorksheetFunction.Subtotal(103, .Cells) > 1 Then .Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible).EntireRow.Delete '<--| if any cell found other than header then delete corresponding rows (skipping headers)
    .Parent.AutoFilterMode = False
End With
person user3598756    schedule 31.03.2017
comment
Заработало и вроде пошло быстрее. Спасибо - person Riddell_13; 01.04.2017