0

我正在使用 Excel 中的 C# VSTO 项目,该项目需要保存当前的自动筛选信息并在某些表更新后重新应用筛选器。我设法让它在简单的文本和数字过滤器上工作。但它在日期过滤器上失败。

仔细一看,好像当filter Criteria是一个Array的时候,就没有办法访问criteria了?基本上,myCriteria = someFilter.Criteria2返回简单文本过滤器字符串的代码现在会引发 COM 异常。

关于这个问题的 MSDN 文档(http://msdn.microsoft.com/en-us/office/microsoft.office.interop.excel.filter_members(v=office.14))根本没有帮助。

我尝试在宏中记录过滤,这里是过滤日期列到十月的记录代码:

ActiveSheet.Range("$C$1:$C$6").AutoFilter Field:=1, _
                                          Operator:=xlFilterValues, _
                                          Criteria2:=Array(1, "10/31/2013")

“Criteria2”部分是我想通过代码获得的。

任何想法都受到高度赞赏!

4

1 回答 1

0

一个小技巧!

假设过滤器是手动应用的。将过滤器应用于列时,您唯一的选择是列中的项目。应用过滤器后,列中唯一可见的单元格就是过滤器选择的单元格。

因此,您可以在列中循环运行,收集可见单元格。然后使用集合或字典删除重复项。剩下的是过滤条件。

于 2013-11-05T00:05:10.407 回答