我正在使用 Office 和 VS 2010 处理 Excel VSTO 项目。我有获取范围的代码,但我似乎无法让自动筛选器正常工作。这是我到目前为止的代码:
Excel.Workbook wb = (Excel.Workbook)Globals.ThisWorkbook.InnerObject;
Excel.Name rngN = wb.Names.Item("MyNamedRange", System.Type.Missing, System.Type.Missing);
Excel.Range rng = rngN.RefersToRange;
int allRows = rng.Rows.Count;
rng.AutoFilter(8, "ST", Microsoft.Office.Interop.Excel.XlAutoFilterOperator.xlOr, System.Type.Missing, null);
int filteredRows = rng.Rows.Count;
然而,在这个例子中,行数是相同的,我的范围根本没有被过滤——我指的是上面的变量allRows和filteredRows。所以我要么没有正确实现过滤器,要么我的过滤器语句是错误的。我的过滤线:
rng.AutoFilter(8, "ST", Microsoft.Office.Interop.Excel.XlAutoFilterOperator.xlOr, System.Type.Missing, null);
所以我的理解是,这条线将在第 8 个字段中查找“ST”的所有匹配项。这不正确吗?为什么我的记录计数相同?