使用可修改日期

时间:2015-05-13 15:19:19

标签: vba excel-vba excel

我希望按单元格中指定的日期(用户可以更改)进行过滤,然后删除整行和不过滤。我在 Set = LastRow 部分收到对象必需的错误

 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

1 个答案:

答案 0 :(得分:1)

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

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

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

就足够了。

编辑:我编辑了lastrow,因为ws是一个未定义的对象。也许留在你的代码中的东西虽然你不再拥有那个对象。