Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在活动Excel电子表格上应用空筛选器-C#_C#_Excel_Vsto - Fatal编程技术网

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

在活动Excel电子表格上应用空筛选器-C#,c#,excel,vsto,C#,Excel,Vsto,因此,我正在使用C#解析大量Excel文件,我的程序正在做的一件事是在工作簿的活动工作表上重新应用过滤器。但是我在调用.AutoFilter()方法时收到以下错误System.Runtime.InteropServices.COMException:“\u Range类的AutoFilter方法失败” 对可能出现的问题有什么看法吗 为了更详细地说明这个问题,我需要在大约100多个工作簿上运行此代码,工作表有10到20000行,在工作表中运行的脚本会进行一系列计算,以添加3个新列,唯一缺少的是将这

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

对可能出现的问题有什么看法吗


为了更详细地说明这个问题,我需要在大约100多个工作簿上运行此代码,工作表有10到20000行,在工作表中运行的脚本会进行一系列计算,以添加3个新列,唯一缺少的是将这3个新列添加到电子表格中显示的过滤器中。

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

而不是使用

xlWorkBook.Sheets[“Data”].Range[“A:Q”].AutoFilter()

我用过这个

xlWorkBook.ActiveSheet.Range[“A:Q”].AutoFilter()


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

鉴于您的修复程序在不指向标题行的情况下起作用,我记下了我的答案。好的!非常感谢你的帮助。我花了数小时试图在Excel VSTO加载项中使用“第一种方式”,包括使用对活动工作表的引用:
Excel.Worksheet objActiveSheet=Globals.ThisAddIn.Application.ActiveSheet;objActiveSheet.Range[“XX:XX”].AutoFilter()。最后,只有“第二种方式”起作用:
Globals.ThisAddIn.Application.ActiveSheet.Range[“XX:XX”].AutoFilter()
                var xlWorkBook = xlApp.Workbooks.Open(file.FullName);
                Worksheet xlWorkSheet = xlWorkBook.Sheets["Data"];
                xlWorkSheet.Range["A:Q"].AutoFilter();