在活动 Excel 电子表格上应用空过滤器 - C#

Applying an empty filter on the Active Excel Spreadsheet - C#

因此,我正在使用 C# 解析大量 Excel 文件,我的程序正在做的其中一件事是在工作簿上的活动 sheet 上重新应用过滤器.但我收到此错误 System.Runtime.InteropServices.COMException:调用 .AutoFilter() 方法时“范围 class 的_AutoFilter 方法失败”。

                var xlWorkBook = xlApp.Workbooks.Open(file.FullName);
                Worksheet xlWorkSheet = xlWorkBook.Sheets["Data"];
                xlWorkSheet.Range["A:Q"].AutoFilter();

有什么可能出错的想法吗?

为了详细说明这个问题,我需要在大约 100 多个工作簿上 运行 这段代码,sheet 有 10 到 20,000 行,脚本 运行 通过sheets 做了一堆计算来添加 3 个新列,唯一缺少的部分是将这 3 个新列添加到显示在 spreadsheet.

中的过滤器中

在弄乱我的代码后,我终于想出了一个解决方案。

而不是使用

xlWorkBook.Sheets["Data"].Range["A:Q"].AutoFilter();

我用过这个

xlWorkBook.ActiveSheet.Range["A:Q"].AutoFilter();

为什么第一种方法不起作用我不明白,只是发布我的解决方案以防将来有人遇到同样的问题。