我有以下电子表格
**列 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 打开宏,在下方插入一个新模块本工作簿,并将代码粘贴到右侧。