基于filter删除时请求dynamic范围解决scheme

我目前正在制作一个macros来自动完成Excel中每天必须完成的一些工作。 但是,由于这是我第一次遇到Excel中的Visual Basic和macros,所以我正努力实现基于筛选结果的dynamic范围select。

基本上,这个想法是我在一个头上应用了一个filter后删除了一系列的行。 由于这个行的范围发生了变化,我需要代码根据过滤结果dynamicselect范围。 举一个实际的例子,这是我正在申请的一个filter:

Columns("J:J").EntireColumn.AutoFit ActiveSheet.Range("$A$4:$AQ" & LastRow).AutoFilter Field:=10, Criteria1:="=" Rows("34:34").Select Range(Selection, Selection.End(xlDown)).Select Selection.Delete Shift:=xlUp ActiveSheet.Range("$A$4:$AQ" & LastRow).AutoFilter Field:=10 Columns("J:J").Select Selection.EntireColumn.Hidden = True 

问题在于“行(”34:34“)。select”,因为这些行会每天都在改变。

我已经做了一些关于网站的阅读,我已经尝试了一些涉及SpecialCellfunction的build议,但是这些build议目前不适用于我(我可能做错了)。

我想这是一个简单的解决scheme,所以我希望你们中的一个能指点我正确的方向? 这会帮助我很多。

我希望我已经设法做出了一些道理。

先谢谢你!

试试这个:

 With ActiveSheet.Range("A4:AQ" & lastrow) .AutoFilter Field:=10, Criteria1:="=" 'get all rows except header. Only visible rows would be deleted .Offset(1).Resize(.Rows.Count - 1).EntireRow.Delete Shift:=xlUp .AutoFilter Field:=10 End With