我使用Excel中的表格数据显示过去几个月的个人预算交易分类帐(列包括交易日期,预算类别,交易金额等)。
我喜欢创建一个脚本来过滤这些数据,只显示当前月份的交易数据,无论月份可能是什么。通过记录一个简单的宏,我可以看到Excel如何编写一个脚本来过滤7月份的日期列(在下面的例子中,第3列):
ActiveSheet.Range("A:K").AutoFilter Field:=3, Operator:= _
xlFilterValues, Criteria2:=Array(1, "7/29/2017")
为了将来使用这个公式,我显然不想硬编码" 7/29/2017"进入脚本,但在Excel中使用=MONTH(TODAY())
函数组合之类的东西,以便它只选择当前月份的事务。但每次我尝试使用TODAY
函数运行上面的脚本时,都会收到错误("编译错误:Sub或函数未定义")。
我是否需要创建一个变量来保存月份的值?或者在脚本中使用不同的公式?我是VBA脚本的新手,所以感谢您的帮助!
答案 0 :(得分:1)
Range("A:K").AutoFilter Field:=3, Operator:=xlAnd, _
Criteria1:=">" & Application.EoMonth(Now, -1), _
Criteria2:="<=" & Application.EoMonth(Now, 0)
EoMonth(Now, -1)
标志着上个月的结束
EoMonth(Now, 0)
标志着当月的结束