我有一个奇怪的问题,即 Excel 在我的开发机器和测试机器上的行为不同。
在我的加载项中,我在几个地方关闭了 ScreenUpdating 以实现长时间运行的进程。在我的机器上这工作正常。在测试机上,ScreenUpdating = true
我一写入单元格,Excel 就会设置。
以下代码为我演示了这个问题。
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
Microsoft.Office.Interop.Excel.Application excel = Globals.ThisAddIn.Application;
MessageBox.Show(excel.ScreenUpdating.ToString());
excel.ScreenUpdating = false;
MessageBox.Show(excel.ScreenUpdating.ToString());
Workbook workbook = Globals.ThisAddIn.Application.ActiveWorkbook;
Worksheet w = (Worksheet)workbook.Worksheets[1];
((Range)w.Cells[1, 1]).Value = "Test";
MessageBox.Show(excel.ScreenUpdating.ToString());
}
在我的机器上,打开 Excel 会给出三个消息框
“真”、“假”、“假”。
他们说在测试机器上
“真”、“假”和“真”。
我还使用远程调试器逐步完成,并ScreenUpdating
在设置单元格值后立即观察属性更改。此外,这不是唯一重置的东西ScreenUpdating
。添加或删除工作表或工作簿也将执行此操作。
每个系统上的 Excel 版本相同(14.0.6112.5000(32 位))。
这可能是什么原因造成的?如何修复它以使 Excel 尊重我的设置?