取消对excel工作簿#2的保护

本文关键字:保护 工作簿 excel 取消 | 更新日期: 2023-09-27 18:01:57

我有一个excel是密码保护。我试图添加一个宏到这个excel..我的代码是

   oBook = oExcel.Workbooks.Open(FileName, 0, false, 5, "xyz", "", false, Excel.XlPlatform.xlWindows, "", true, false, 0, true);
    //oModule = oMOD.VBComponents("ThisWorkbook");
    oBook.Unprotect("xyz");
    // Create a new VBA code module.
    oModule =
    oBook.VBProject.VBComponents.Add(VBIDE.vbext_ComponentType.vbext_ct_StdModule);
    oModule.CodeModule.AddFromString(sCode);

当我运行这个,我得到这个错误"不能执行操作,因为项目是受保护的。"

如何摆脱这个错误

取消对excel工作簿#2的保护

我也遇到过类似的问题。没有找到解决方案,但找到了变通方法:

尝试切换应用程序的Visibility属性

oBook = oExcel.Workbooks.Open(FileName, 0, false, 5, "xyz", "", false, Excel.XlPlatform.xlWindows, "", true, false, 0, true);

oExcel.Visible= true;
oExcel.Visible = false;
oBook.Unprotect("xyz");

我真的不知道它是如何工作的(看起来像一个bug),但是这两行简单的代码帮助我解决了我的问题。