#价值!包含用户定义函数的单元格中出现错误

本文关键字:单元格 错误 函数 价值 包含 用户 定义 | 更新日期: 2023-09-27 17:58:14

我需要以只读方式使用C#打开Excel工作簿。没有问题。但是,如果该工作簿是在打开自动筛选的情况下保存的,我需要使用c#将其关闭,这样我就可以将工作表值读取到我的类中。问题是,如果一个单元格中有一个用户定义的函数,那么该单元格将显示#VALUE!关闭自动筛选而不是其正确值时出错。如果我只使用Excel手动关闭自动筛选,这不是问题。所以我知道用户定义的函数本身没有问题。

以下是我正在做的:

   Excel.Application app = new Excel.Application();
   Excel.Workbook CIRworkbook;
   var missing = Missing.Value;
   bool openAsReadOnly = true;
   CIRworkbook = (Excel.Workbook)(app.Workbooks.Open(xlsFile, missing, openAsReadOnly, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing));
   app.get_Range("A:IV", missing).Worksheet.AutoFilterMode = false;
   app.CalculateFull();

应用程序。CalculateFull()行对删除#VALUE无效!错误

#价值!包含用户定义函数的单元格中出现错误

尝试使用以下语法来获取工作表中包含值的所有单元格,而不考虑自动过滤器的打开/关闭或实际使用的过滤器。

我想这就是你想要的:

Worksheet currSheet = excelApp.ActiveWorkbook.ActiveSheet;
object[,] objData = (object[,])currSheet.UsedRange.Value2;

CCD_ 1成员保持小区/范围的下划线内容。如果要查找显示给用户的可见字符串,请使用Text属性。