这是背景信息。我有一个写入 excel 2007 .xlsm 文件的应用程序,我正在使用 C# 和 Excel 12.0 互操作对象库以及 Visual Studio 2010 来执行此操作。我能够更改单元格值和公式,设置字体和字体样式,将单元格设置为锁定与否,等等。我需要做的最后一件事是设置工作表的保护以禁止选择锁定的单元格。
当我尝试调用此代码时,作为对一般工作表保护的测试......
((Excel.Worksheet)excelApp.ThisWorkbook.Sheets[0]).Protect(Password: protectionPassword, AllowFormattingCells: false);
...我得到一个异常Exception from HRESULT: 0x800A03EC
,告诉我一个 COM 异常未处理。
此外,互操作保护对象没有给我上面提到的选项,尽管当我单击审阅选项卡下的“保护表”时,该选项在 excel 中可用。
所以,现在我的问题是:如何使用 C# 中的 Excel 互操作关闭 AllowSelectLockedCells 选项来保护 Excel 中所需的工作表?