excel常用代码

1、删除当前sheet中所有第一列不为空,且第9列为root、user、administrator的所有行:

Sub delByCondition()
    Application.ScreenUpdating = False
    Dim lr As Long
    lr = Cells(Rows.Count, 1).End(xlUp).Row
    For i = lr To 2 Step -1
    If IsEmpty(Cells(i, 1)) And (Cells(i, 9) = "root" Or Cells(i, 9) = "user" Or Cells(i, 9) = "administrator") Then
        Rows(i).Delete shift:=xlUp
    End If
    Next i
    Application.ScreenUpdating = True
End Sub

代码说明:
Cells(Rows.Count, 1)
Rows.Count是指当前活动工作表(sheet)的行数,为数字 1048576,很熟悉的一个数字,为Excel工作表的最大行数;
Cells(Rows.Count, 1),则是定位到第一列的最后一行cell,即单元格“A1048576”

End(xlUp)等同于End mode下+UP键,或Ctrl+Up,
若活动单元格为空,其上一个单元格也为空,将会向上寻找该列第一次出现的非空单元格;
若活动单元格非空,其上一个单元格也非空,将会选中活动单元格所在列的最后一个非空单元格;
其上一个单元格为空,将继续向上寻找该列第一次出现的非空单元格,直到第一个单元格为止,如A1。
Cells(Rows.Count, 1).End(xlUp)就是沿着单元格“A1048576”向上寻找第一列第一次出现的非空单元格

For i = lr To 2 Step -1 表示从lr 到 2 步长为1

posted @ 2021-02-21 10:44  kribee  阅读(526)  评论(0)    收藏  举报