我可以在VBA中过滤数据以显示当前月份吗?

我正在使用Excel中的表格数据,显示过去几个月的个人预算交易分类(列包括交易date,预算类别,交易金额等)。

我很乐意创build一个脚本来过滤这些数据,只显示当月的交易数据,不pipe可能发生的月份如何。 通过logging一个简单的macros,我可以看到Excel如何编写一个过滤date列的脚本(在下面的例子中,第3列),7月份:

ActiveSheet.Range("A:K").AutoFilter Field:=3, Operator:= _ xlFilterValues, Criteria2:=Array(1, "7/29/2017") 

为了将来使用这个公式,我显然不想在脚本中编写“7/29/2017”,而是在Excel中使用=MONTH(TODAY())函数组合,这样它只能select事务从当前的月份。 但是每次我尝试使用TODAY函数运行上面的脚本时,出现错误(“编译错误:Sub或Function not defined”)。

我是否需要创build一个variables来保存月份的值? 或者在脚本中使用不同的公式? 我不熟悉VBA的脚本,所以感谢您的帮助!

 Range("A:K").AutoFilter Field:=3, Operator:=xlAnd, _ Criteria1:=">" & Application.EoMonth(Now, -1), _ Criteria2:="<=" & Application.EoMonth(Now, 0) 
  • EoMonth(Now, -1)标志着上个月的结束

  • EoMonth(Now, 0)标志着当前月份的结束