[英]#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.