繁体   English   中英

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

[英]#value! error in cells containing user defined functions

我需要使用 C# 以只读方式打开 Excel 工作簿。 那里没有问题。 但是,如果该工作簿是在打开自动过滤器的情况下保存的,我需要使用 c# 将其关闭,以便我可以将工作表值读入我的 class。 问题是,如果一个单元格中包含用户定义的 function,则该单元格将显示 #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();

app.CalculateFull() 行对删除 #VALUE 没有影响。 错误。

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

我想这就是你要找的:

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

Value2成员保存单元格/范围的下划线内容。 如果您正在寻找向用户显示的可见字符串,请使用Text属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM