我目前正在制作一个宏来自动完成我每天必须在Excel中完成的工作。但是,由于这是我第一次在Excel中使用Visual Basic和Macros,我很难根据过滤结果实现动态范围选择。
基本上,我的想法是在标题上应用过滤器后删除一系列行。由于此行范围更改,我需要代码根据筛选结果动态选择范围。举一个实际的例子,这是我正在应用的一个过滤器:
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“)。选择”,因为这些行每天都会发生变化。
我已经在网站上做了一些阅读,我已经尝试了一些涉及SpecialCell功能的建议,但是,这些目前不适用于我(我可能做错了)。
我想有一个简单的解决方案,所以我希望你们中的一个能指出我正确的方向?这会对我有所帮助。
我希望自己能够有所作为。
提前谢谢!
答案 0 :(得分:0)
试试这个:
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