来排序剩余行。以下是示例代码:

Sub DeleteRowsWithBlankCells()
    Dim lastRow As Long
    Dim i As Long
    
    lastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row '获取最后一行的行数
    
    For i = lastRow To 2 Step -1 '从最后一行向上循环,留下第一行
    
        If Application.WorksheetFunction.CountA(Range("A" & i & ":C" & i)) < 3 Then '如果有一个或以上的单元格为空
            Rows(i).Delete '删除整行
        End If
    Next i
    
    ActiveSheet.Sort.SortFields.Clear '清除排序条件
    ActiveSheet.Sort.SortFields.Add Key:=Range("A2:C" & lastRow), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal '按时间升序排序
    With ActiveSheet.Sort
        .SetRange Range("A1:C" & lastRow)
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

请注意,此代码将删除单元格A、B和C中任何一个为空的行。如果您只想删除所有单元格都为空的行,则可以更改代码中的< 3为< 1

vba 每行有三个单元格都有数据则保留反之有1个或1个以上没有数据的则删除这一行并以时间为升序

原文地址: https://www.cveoy.top/t/topic/fjvw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录