VBA Excel-如何通过vba取消保护和保护

时间:2013-01-11 04:58:30

标签: excel vba sharing

我有一本工作簿,根据要求,我有几张纸。在这个工作簿中,我使用了宏并锁定了一些特定的单元格和列,我使用了unprotect和保护选项。一切都在我的机器上工作正常,但当我把它作为SharedWorkBook时,它给我的错误特别是 ThisWorkBook.Sheets(“PSE”)。取消保护 ThisWorkBook.Sheets(“PSE”)。保护语句。因此,我使用 ThisWorkBook.Sheets(“PSE”)。UnprotectSharing ThisWorkBook.Sheets(“PSE”)。ProtectSharing 。即便如此,我也会遇到这些问题的错误。


Sub SheetHider()
ThisWorkbook.Sheets("SheetA").UnprotectSharing
Cuser = ThisWorkbook.Sheets("SheetA").Range("A2").Value

且错误为运行时错误'438'对象不支持此属性或方法。

我的要求: 1)我必须使用宏,锁定属性,以便我必须使用Unprotect和Protect语句,这些东西应该在我作为SharedWorkBook时使用。
一个星期以来,我一直在搜索许多网站。 Atleast给了我一些替代方法。
任何帮助将非常感激。谢谢

2 个答案:

答案 0 :(得分:4)

UnprotectSharingProtectSharing都属于Workbook对象。所以你不能做你想做的事。

您可以执行ThisWorkbook.UnprotectSharingThisWorkbook.ProtectSharing,但这只是为了保护共享工作簿设置,以便人们无法在没有密码的情况下将其删除。

其次,在共享工作簿时,您无法取消保护或保护工作表。您必须取消共享工作簿,取消保护工作表,然后再次共享工作簿。这不太可行。

答案 1 :(得分:0)

您必须在保护共享工作簿之前保护工作表,取消保护将按相反的顺序进行。