Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.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 - Fatal编程技术网

Excel c#问题-公式未重新计算

Excel c#问题-公式未重新计算,c#,excel,C#,Excel,我正在从事文档级excel项目。这是第三个版本 其中一个工作表包含一个列表对象(从数据库馈送的数据)。还有一些单元格包含如下公式 this.Range[“F15”].Formula=“=COUNTIFS(热列表列表对象[产品]、E15、热列表列表对象[已感兴趣],\“\”) 以前,我只是通过拖放创建了表。然后在工作表中创建一个公式。并将公式作为listobject(上面的HotList_listobject)中的数据重新计算 这次,我用代码创建了表。因为在应用程序运行之前,Hotlist_Lis

我正在从事文档级excel项目。这是第三个版本

其中一个工作表包含一个列表对象(从数据库馈送的数据)。还有一些单元格包含如下公式

this.Range[“F15”].Formula=“=COUNTIFS(热列表列表对象[产品]、E15、热列表列表对象[已感兴趣],\“\”)

以前,我只是通过拖放创建了表。然后在工作表中创建一个公式。并将公式作为listobject(上面的HotList_listobject)中的数据重新计算

这次,我用代码创建了表。因为在应用程序运行之前,Hotlist_ListObject不在工作表上,所以我在通过代码创建ListObject之后提供了公式

我浏览了互联网,做了几次测试

当我按F9、SHIFT+F9和CTRL+ALT+F9时,它不会重新计算

只有当我按CTRL+SHIFT+ALT+F9时,它才会重新计算

我为CTRL+SHIFT+ALT+F9找到的解释是

重新检查相关公式,然后计算所有打开的工作簿中的所有公式,无论它们自上次以来是否已更改

似乎因为公式是由代码在工作表中提供的,所以它不会创建指向从属公式或其他内容的链接,因此不会重新计算。(我想大概是这样吧)

我的用户不会在每次修改/添加/删除列表中的记录时按下该按钮

我能做些什么来解决这个问题?如何告诉Excel,每当listobject中发生任何变化时,公式都需要重新计算

感谢您提前提出的建议

问候
Mark

将计算设置为手动:

xlApp.Calculation = XlCalculation.xlCalculationManual;
xlApp.ScreenUpdating = false;
xlApp.DisplayAlerts = false;
xlApp.UserControl = false;
xlApp.EnableEvents = false;
然后填充您的热列表\u ListObject(在应用程序运行之前不在工作表上),然后将计算设置为自动:

xlApp.Calculation = XlCalculation.xlCalculationAutomatic;
xlApp.ScreenUpdating = true;
xlApp.DisplayAlerts = true;
xlApp.UserControl = true;
xlApp.EnableEvents = true;

解决问题?如果没有,请发布一些简单的代码来说明问题。

您是否检查了选项设置?宏可能会将其重置为手动(在宏编辑器中使用Alt+F11检查
xlCalculateManual
并确保在执行
Application.Calculation=xlCalculationAutomatic
之前未停止宏,以将计算设置回自动状态。关闭计算是加速宏的常用方法,但当宏中途退出时,此手动所有计算设置将保持不变

这是手动设置


+1我也觉得是计算设置造成了这个问题。@HeinrichStack这是Mark提出的一个问题。我不知道它不能为您解决什么问题。也许您需要通过单击页面右上角的按钮来问一个
新问题。
。您最后是如何处理的?您解决了吗?