excel 宏 - 如何根据单元格值删除行

excel 宏 - 如何根据单元格值删除行

我有以下电子表格

**列 ai**

ABCDEF **G** 嗨

**第 1 行**

003 他的着装 3305 S4S 0 0 **35** 35 1           

**第 2 行**

003 他的着装命令 0 0 0 **0** 0 0                          

我需要一个宏,它将根据单元格 g 为 0 来删除第 2 行,但忽略第 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

这里是:

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

使用 ALT + F11 打开宏,在下方插入一个新模块本工作簿,并将代码粘贴到右侧。

相关内容