整个早上我都在想办法解决这个问题。有没有办法循环遍历 Excel 中列过滤器中的条件,同时用条件名称填充数组?过滤器对象似乎只有 criteria1 和 criteria2。抱歉,如果我的任何术语不清楚,我对 Excel 还很陌生。
(这是使用 Excel 2007)
最佳答案
看来,如果您选择了 1 或 2 个条件,那么这些条件将存储在 .Criteria1
和 .Criteria2
中。
但是,如果您有超过 2 个,则 .Criteria1
将成为所选过滤器的数组 - 然后您可以使用...进行迭代...
Dim iFilt As Integer 'This should be set equal to the column
'index you are interested in
Dim iFiltCrit as Integer
For iFiltCrit = 1 To UBound( Sheet1.AutoFilter.Filters(iFilt).Criteria1 )
Debug.Print Sheet1.AutoFilter.Filters(iFilt).Criteria1(iFiltCrit)
Next
请注意,这仅适用于具有 2 个以上条件的列 - 如何确定是否属于这种情况取决于您 - 这是一个相当笨重的 Excel API(意外惊喜),因为它的类型松散.
关于excel - VBA:循环遍历Excel过滤器中的条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9893057/