为什么我不能直接访问table.AutoFilter.filters.Item(1).On并将其设置为False?

时间:2014-06-11 04:22:47

标签: excel-vba filtering excel-2013 vba excel

通常在尝试弄清楚如何在VBA中访问对象的值或属性时,我可以打开Locals窗口并查看相关对象的子项并向下钻取,直到找到值I'我正在寻找。例如,如果我想获得一个名为listrow的第二个单元格/列,通过本地窗口进行简单搜索会显示类似

的内容
selectedRow.Range.Value2(1, 2)

应该给我答案。

所有这一切都是真的,为什么不像下面这样的陈述?

table.AutoFilter.Filters.Item(1).On = False

假设我想从集合表对象的第一列中删除过滤器,那么前面的语句应该起作用,至少根据Locals Window和Excel VBA文档。或类似的东西:

table.AutoFilter.Filters.Item(3).Criteria1 = "SearchString"

我应该让我更新表格第三栏的标准。它清楚地标记了本地窗口中填充的值,VBA编辑器愉快地提供自动完成的每个级别,同时键入它,然后在“自动筛选”之后的每个级别。尝试运行时抛出错误。

那么,如果您不能使用它们,为什么会提供/建议这些属性?我错过了什么?

1 个答案:

答案 0 :(得分:0)

对于Excel 2010和2013,AutoFilter.Filter.Ttem.On属性是只读的。所以这回答了你的第一个问题。

http://msdn.microsoft.com/en-us/library/office/ff197843%28v=office.15%29.aspx

AutoFilter.Filter.Ttem.Criteria1属性也是如此。哪个回答第二个。

(之前我还不知道这些事情,所以感谢您的提问。)