excel 根据两列中的值删除行

ulydmbyx  于 2022-12-24  发布在  其他
关注(0)|答案(1)|浏览(221)

我有一个excel工作表,我需要删除基于两个不同单元格的值的行。
初始excel工作表是从一个报表创建的,该报表将填充上个月到当天的数据。根据运行报表的日期,我可能有额外的三天或四天不需要的数据。我希望根据月份和时间列删除不需要的行。
简化Excel工作表

我希望删除该月最后一天之后的所有数据,但1日0:00的初始数据除外。在本例中,我希望删除第4行以下的所有数据。
任何帮助都将不胜感激。
到目前为止,我已经尝试了以下方法,并且可以过滤日期列上的数据,但是在组合第二列的过滤器方面还没有成功。

Sub Delete_Row_Cell_Contains_Text()
    Dim Row As Long
    Dim i As Long
    Row = 15
    For i = Row To 1 Step -1
        If Cells(i, 1) = "12" Then
            Rows(i).Delete
        End If
    Next
End Sub
u5rb5r59

u5rb5r591#

试试这样的方法:

Sub Delete_Row_Cell_Contains_Text()
    
    Dim i As Long, ws As Worksheet, currMonth As Long, dt As Date
    Dim keepDateTime
    
    currMonth = Month(Date)
    keepDateTime = DateSerial(Year(Date), currMonth, 1) 'date/time row to keep
    
    Set ws = ActiveSheet
    For i = ws.Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1 'from last date up...
        dt = ws.Cells(i, 1).Value
        If Month(dt) <> currMonth - 1 Then 'if not this month-1
            'if not the first of this month at midnight
            If dt + ws.Cells(i, 2).Value <> keepDateTime Then
                ws.Rows(i).Delete
            End If
        End If
    Next
End Sub

相关问题