在运行使用Excel的过程中,我通常会在过程开始时关闭一些应用程序设置,然后在过程结束时再重新打开它们。
关闭和打开应用程序设置的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace XLTimeTracker
{
class API
{
public static void TurnAppSettingsOff()
{
AddinModule.CurrentInstance.ExcelApp.EnableEvents = false;
AddinModule.CurrentInstance.ExcelApp.ScreenUpdating = false;
}
public static void TurnAppSettingsOn()
{
if (AddinModule.CurrentInstance.ExcelApp == null) return;
AddinModule.CurrentInstance.ExcelApp.EnableEvents = true;
AddinModule.CurrentInstance.ExcelApp.ScreenUpdating = true;
}
}
}
我会按照以下方式调用这些过程:
API.TurnAppSettingsOff();
// my code
API.TurnAppSettingsOn();
这很有效。
但是,如果我只想要打开在运行 API.TurnAppSettingsOff()
前已经存在的应用程序设置,有什么好的编码方法呢?
一些想法:
- 我想我需要以某种方式保存应用程序设置的先前状态。例如,写入:
Boolean screenUpdating = AddinModule.CurrentInstance.ExcelApp.ScreenUpdating;
我希望即使一个将appsettings开和关的函数也调用另一个将app settings开和关的函数,最终结果也是正确的。
我不知道是最好一次使用一个命令来设置所有设置,如
API.TurnAppSettingsOff()
,还是更明智地使用API.TurnScreenUpdatingOff()
和API.TurnEventsOff()
。