vba 每行有三个单元格都有数据则保留反之有1个或1个以上没有数据的则删除这一行并以时间为升序
来排序剩余行。以下是示例代码:
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
原文地址: https://www.cveoy.top/t/topic/fjvw 著作权归作者所有。请勿转载和采集!