excel macro - como excluir linhas com base em um valor de célula

1

Eu tenho a seguinte planilha

**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                          

Eu preciso de uma macro que exclua a linha 2 com base na célula g, sendo 0, mas ignore a linha 1, pois o valor na coluna g é 35.

é claro que minha planilha tem várias linhas que têm a coluna g com um valor de 0 e precisam excluir todas as linhas da pasta de trabalho.

então aqui está o sub que tem um erro, não sei porque.

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
    
por DanM 17.11.2015 / 16:18

1 resposta

1

Aqui está:

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

Abra macros com ALT + F11, insira um novo módulo em ThisWorkbook e cole o código no lado direito.

    
por 17.11.2015 / 16:48