0
我需要使用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();
的app.CalculateFull()线对去除#VALUE没有效果!错误。
UDF是包含在工作簿中还是加载项中?我似乎记得,当通过自动化打开Excel时,加载项不会被加载。 – 2011-06-01 17:24:12
UDF位于工作簿中的模块中。 – KTLind 2011-06-03 14:41:24
您是否尝试过使Excel实例可见?这是否解决了这个问题?或者尝试使用app.CalculateFullRebuild()。只是做了一个快速测试,我没有看到你的问题在这里。 – 2011-06-03 16:50:41