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

时间:2017-07-31 00:19:57

标签: excel excel-vba date vba

我使用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脚本的新手,所以感谢您的帮助!

1 个答案:

答案 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)标志着当月的结束