1

У меня есть следующая таблица

**Columns a-i**

A    B               C       D      E      F    **G**   H       I

**Row 1**

003 His Dressing    3305    S4S     0      0    **35**  35      1           

**Row 2**

003 His Dressing    Bidding   0      0     0    **0**   0        0                          

Мне нужен макрос, который удалит строку 2 на основе ячейки g, равной 0, но игнорирую строку 1, так как значение в столбце g равно 35.

Конечно, в моей электронной таблице есть несколько строк, в которых есть столбец g со значением 0, поэтому необходимо удалить все строки в книге.

так вот саб, в котором есть ошибка, не знаю почему.

Sub DeleteRows()
    Dim rownum As Long
    for rownum 1 to 1000
    If Cells(rownum, 1).Value = 0 Then
        Rows(rownum).Delete
    Next rownum
    Cells(rownum, 1).Activate
End Sub

1 ответ1

1

Вот:

Public Sub removeRows()
    Application.ScreenUpdating = False
    Dim wkb As Workbook
    Dim wks As Worksheet
    Set wkb = ThisWorkbook
    filtercolumn = "G"
    Set wks = wkb.Sheets("Sheet1")
    totalrows = wks.Cells(Rows.Count, "A").End(xlUp).Row
    For j = totalrows To 1 Step -1
        If wks.Cells(j, filtercolumn) = 0 Then
            wks.Rows(j).Delete
        End If
    Next j
    Application.ScreenUpdating = True
    themessage = MsgBox("Finished", vbInformation)
End Sub

Откройте Macros с помощью клавиш ALT + F11, вставьте новый модуль в ThisWorkbook и вставьте код с правой стороны.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .