【发布时间】:2021-02-16 23:24:02
【问题描述】:
我有一个宏,它从一个工作表中提取报告,然后从另一个工作表中提取适用的数据,并将两个页面都打印到一个 PDF 文件中。它的打印到 pdf 方面正在工作,但过滤数据以匹配报告却没有。
我从定义报告的开始和结束日期开始,然后我想在打印之前根据此日期范围过滤数据工作表的第一列。
我的代码如下:
Dim StartDate as Date, EndDate as Date, DataTable as String
EndDate = ActiveSheet.Range("G6")
StartDate = ActiveSheet.Range("G5")
Worksheets("Data").Activate
DataTable = Worksheets("Data").Range("A2").CurrentRegion.Address
ActiveSheet.Range(DataTable).AutoFilter Field:=1, Criteria1:=">=" & StartDate, Operator:=xlAnd, Criteria2:="<=" & EndDate
在运行宏之前手动更改过滤器确实有效,但我希望宏自行完成。非常感谢任何建议。
【问题讨论】:
-
你当前的代码抛出了什么错误?
-
“Range类的AutoFilter方法失败”
-
DataTable的值是多少? -
手动尝试,但使用宏记录器。如果您无法弄清楚,请尝试将您从宏记录器获得的代码添加到您的帖子中。
-
首先摆脱所有那些
Activate声明。它通常会导致多个问题。在这里可能是也可能不是问题,但如果不是,它可能在未来成为一个问题。见How to avoid using Select in VBA