【问题标题】:Can I share a protected workbook on a network while still using macros?我可以在仍然使用宏的同时在网络上共享受保护的工作簿吗?
【发布时间】:2017-07-22 05:24:05
【问题描述】:

我正在尝试在本地网络上共享一个工作簿,该工作簿受到保护并且只能通过宏和用户窗体进行编辑。它在不共享时工作得很好,每个宏取消保护工作簿进行编辑然后重新保护工作簿。但是,当工作簿被共享时,它会给出这个错误并且不会让代码运行。

对象“_Worksheet”的方法“取消保护”失败

有什么方法可以让这个受保护的工作簿只由宏编辑?另一个棘手的问题是某些工作表允许选择单元格但不允许编辑,而其他工作表的单元格是不可选择的,我需要保持真实。任何帮助都会很棒,提前感谢您的帮助!

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    您的代码可以在启用工作簿共享时使用共享工作簿中可用的任何功能,并且可以在工作簿时使用受保护工作簿中可用的任何功能保护模式已开启。

    请注意,您无法在共享工作簿时查看其代码,但您仍然可以运行宏。

    共享工作簿和保护工作簿是独立的功能,它们都限制可以在当前工作簿中执行的操作,您的代码需要先关闭它们中的每一个,然后才能执行这些功能会阻止的操作。

    以下都是工作簿对象的属性或方法。

    工作簿保护:

    Protect(Optional password) 是一种打开工作簿保护的方法,如功能区命令 Review |保护工作簿。

    Unprotect(Optional password) 是一种关闭工作簿保护的方法,如功能区命令 Review |取消保护工作簿。如果使用密码启用了工作簿保护,则需要 password 参数。

    共享工作簿功能:

    MultiUserEditing 是一个只读布尔属性,指示共享工作簿功能当前是否开启。

    ExclusiveAccess() 是一种不带参数并禁用共享工作簿功能的方法。这样做的副作用是阻止共享工作簿中的其他活动用户将他们的更改保存到原始文件。

    共享工作簿功能没有自己的方法,而是使用工作簿的 SaveAs 方法和参数 AccessMode:=xlShared 来打开它(无论如何都需要保存工作簿)。

    如果这还不够复杂,还有另一个适用于共享工作簿功能的保护功能。

    保护共享工作簿功能:

    ProtectSharing(optional SharingPassword) 是一种启用共享保护的方法,如功能区命令 Review |保护共享工作簿。当此功能开启时,共享工作簿功能无法关闭(即您必须先关闭此保护)。使用此方法还将打开共享工作簿功能(如果尚未打开)。

    Unprotect Sharing(optional SharingPassword) 是一种关闭共享保护的方法(允许随后禁用共享工作簿功能)。如果使用密码启用了保护共享工作簿,则需要 SharingPassword 参数。

    阅读:

    我尽量保持简单(信不信由你)。我强烈建议阅读workbook objectshare workbook 功能的成员,并进行大量测试,因为有很多细微差别要学习。

    【讨论】:

      猜你喜欢
      • 2020-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多