【问题标题】:Filtering and deleting data using a modifiable date使用可修改的日期过滤和删除数据
【发布时间】:2015-05-13 23:53:59
【问题描述】:

我想按单元格中指定的日期(用户可以更改)进行过滤,然后删除整行并取消过滤。我在 Set = LastRow 部分收到 object required 错误

 Sub Button_Delete_Rows()

 Dim CuttoffDate As Date
 Dim LastRow As Long
 Dim rng As Range

 Set CutoffDate = Sheets("PL Refresh").Range("K3").Value

 Set LastRow = Sheets("Data").Range("F" & ws.Rows.Count).End(xlUp).Row

 Set rng = Sheets("Data").Range("F")
 With rng
     .AutoFilter Field:=1, Criteria1:=">" & "CutoffDate"
     .Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
 End With

 rng.AutoFilterMode = False

 End Sub

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    您不需要在简单类型上使用关键字Set,它仅用于对象(工作簿、工作表、范围...)。

    CutoffDate = Sheets("PL Refresh").Range("K3").Value

    LastRow = Sheets("Data").Cells(Sheets("Data").Rows.Count, "F").End(xlUp).Row

    足够了。

    编辑:我编辑了 lastrow,因为 ws 是一个未定义的对象。尽管您不再拥有该对象,但也许某些内容仍保留在您的代码中。

    【讨论】:

    • 但我已将其删除并在上面的行中出现调试错误
    • @RosePetal17 Date 不是一个对象,所以把Set 也去掉! ;)
    • 谢谢,但有什么想法为什么现在它在 LastRow = Sheets 行上再次出现“需要对象”错误?抱歉,我一直试图让它工作多年:/
    • @RosePetal17 你在CutOffDate 之前去掉了Set,你在LastRow 之前去掉了Set,它仍然给你错误?
    • 啊,难怪它失败了。您在定义中有一个不存在的对象 ws。我相应地改变了我的答案。
    猜你喜欢
    • 2021-01-10
    • 2019-11-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 2017-10-05
    • 2018-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多