【发布时间】:2013-12-18 04:49:05
【问题描述】:
我有一个宏的一部分,用于在清除过滤器之前存储自动过滤器设置,以便稍后重新应用它们。代码如下:
Dim FilterArray()
With FrontPage.AutoFilter.Filters
ReDim FilterArray(1 To .Count, 1 To 3)
For f = 1 To .Count
With .Item(f)
If .On Then
FilterArray(f, 1) = .Criteria1
If .Operator Then
FilterArray(f, 2) = .Operator
If .Operator = xlAnd Or .Operator = xlOr Then
FilterArray(f, 3) = .Criteria2
End If
End If
End If
End With
Next f
End With
这在我遇到的所有情况下都可以正常工作,日期字段除外。对于日期字段,Criteria1 和 Criteria2 会导致错误(应用程序定义或对象定义错误),而 Operator 返回值 7。这发生在 Excel 2007 中,并且仍在 Excel 2013 中发生。
我认为这不起作用的原因是由于自动过滤器处理日期字段的嵌套方式,但是有没有办法使这个与日期一起工作?我已经看到与将过滤器应用于日期有关的其他问题,但肯定首先存储它们应该更容易吗?
还有一个次要问题 - 7 的值对 Operator 意味着什么?我只能找到值 0-2 的翻译。
【问题讨论】:
-
您使用的是什么版本的 Excel?
-
我在 2013 年,但在 2007 年遇到同样的问题
标签: vba excel autofilter