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

VBA Excel-如何通过VBA取消保护和保护,excel,vba,sharing,Excel,Vba,Sharing,我有一本工作手册,里面有几张根据要求准备的表格。在本工作簿中,我使用了宏并锁定了一些特定的单元格和列,我使用了“取消保护”和“保护”选项。在我的机器上一切正常,但当我将其作为共享工作簿时,它会给我错误,尤其是ThisWorkBook.Sheets(“PSE”)。取消对和ThisWorkBook.Sheets(“PSE”)的保护。因此,我使用ThisWorkBook.Sheets(“PSE”).UnprotectShareing和ThisWorkBook.Sheets(“PSE”).protect

我有一本工作手册,里面有几张根据要求准备的表格。在本工作簿中,我使用了宏并锁定了一些特定的单元格和列,我使用了“取消保护”和“保护”选项。在我的机器上一切正常,但当我将其作为共享工作簿时,它会给我错误,尤其是ThisWorkBook.Sheets(“PSE”)。取消对ThisWorkBook.Sheets(“PSE”)的保护。因此,我使用ThisWorkBook.Sheets(“PSE”).UnprotectShareingThisWorkBook.Sheets(“PSE”).protectShareing来代替它们。即使现在,我也会在这些行中遇到错误。



错误是运行时错误“438”对象不支持此属性或方法。

我的要求:1)我必须使用宏、锁定属性,以便我必须使用Unprotect和Protect语句,当我将其作为SharedWorkBook时,这些东西应该可以工作
我已经在很多网站上搜索了一周了。至少给我一些替代方法来做这件事。

任何帮助都将不胜感激。谢谢

您必须在保护共享工作簿之前保护工作表,取消保护的顺序与此相反。

您必须在保护共享工作簿之前保护工作表,取消保护的顺序与此相反。

取消保护共享
保护共享
都属于
工作簿
对象。所以你不能做你想做的事

您可以执行
此工作簿。取消保护共享
此工作簿。保护共享
,但这只是为了保护共享工作簿设置,以便人们在没有密码的情况下无法删除它


其次,在共享工作簿时,不能取消保护或保护工作表。您必须取消共享工作簿,取消对工作表的保护,然后再次共享工作簿。这不太实际。

取消保护共享
保护共享
都属于
工作簿
对象。所以你不能做你想做的事

您可以执行
此工作簿。取消保护共享
此工作簿。保护共享
,但这只是为了保护共享工作簿设置,以便人们在没有密码的情况下无法删除它


其次,在共享工作簿时,不能取消保护或保护工作表。您必须取消共享工作簿,取消对工作表的保护,然后再次共享工作簿。这不太实际。

您能列出错误/错误消息的性质以及发生错误的代码行吗?。更多的代码也不会有什么坏处。否则很难说出来。@Jüri Ruut您好,您可以看到我更新的编辑。您能列出错误/错误消息的性质以及发生错误的代码行吗?。更多的代码也不会有什么坏处。否则很难说任何话。@Jüri Ruut您好,您可以看到我更新的编辑。不,实际上我正在取消对工作表的保护,并根据用户角色对某些列应用解锁。在此之后,我正在保护工作表。我没有得到你的答案,请你在deatil中给出答案。不,实际上我正在取消对工作表的保护,并根据用户角色对某些列应用解锁。在此之后,我正在保护工作表。我没有得到你的答案,请你在临终前给出答案。哦,那对我的项目和我来说都是一个非常大的问题。那么,如何限制用户根据环境(“用户名”)动态编辑而不是编辑某些特定的单元格或列呢。请尽快回复我。你好,尼克,让我更清楚地说明我的要求。我的excel有很多与员工相关的数据。要求是当前用户只能编辑其部门数据。此外,多个用户将同时使用该工作表,因此他们需要共享工作簿。在我分享工作簿之前,一切正常。有什么想法吗?@SaiKiranMandhala共享工作簿不可能让你想做什么。很抱歉,我的回答不是你想听的,而是你想听到的。您需要使用非共享工作簿,或者没有保护。谢谢您的时间
ActiveWorkbook.SaveAs“\\192.148.1.123\Extranet\Hub.xlsm”,FileFormat:=52
如何更改上述行以保存文件而不是SaveAs。因为该路径中已存在Hub.xlsm。所以我必须保存那个文件而不是另存为。@SaiKiranMandhala你应该打开一个新问题,因为它是一个不同的主题,提供的信息不足以让我知道你真正需要什么。如果你能将这个问题标记为已回答,这样其他人就会知道,那将是一个非常大的问题,对我和我的项目都是如此。那么,如何限制用户根据环境(“用户名”)动态编辑而不是编辑某些特定的单元格或列呢。请尽快回复我。你好,尼克,让我更清楚地说明我的要求。我的excel有很多与员工相关的数据。要求是当前用户只能编辑其部门数据。此外,多个用户将同时使用该工作表,因此他们需要共享工作簿。在我分享工作簿之前,一切正常。有什么想法吗?@SaiKiranMandhala共享工作簿不可能让你想做什么。很抱歉,我的回答不是你想听的,而是你想听到的。您需要使用非共享工作簿,或者没有保护。谢谢您的时间
ActiveWorkbook.SaveAs“\\192.148.1.123\Extranet\Hub.xlsm”,FileFormat:=52
如何更改上述行以保存文件而不是SaveAs。因为该路径中已存在Hub.xlsm。所以我必须保存那个文件而不是另存为。@SaiKiranMandhala你应该打开一个新问题,因为它是一个不同的主题,提供的信息不足以让我知道你真正需要什么。如果你愿意,那就太好了
Sub SheetHider()
ThisWorkbook.Sheets("SheetA").UnprotectSharing
Cuser = ThisWorkbook.Sheets("SheetA").Range("A2").Value