如何使用 vba 禁用共享 Excel 文件中的行/列取消隐藏选项?

如何使用 vba 禁用共享 Excel 文件中的行/列取消隐藏选项?

我有一个共享的 Excel 文件,需要多人同时处理。该文件包含一些宏,可以根据用户名隐藏某些列。

  • 1)检查用户名
  • 2)隐藏 A、B、C 列(针对特定用户)

一旦为“受限”用户隐藏了列,我不希望用户能够通过右键单击并选择“取消隐藏”来取消隐藏列。我无法真正使用宏来保护/取消保护工作表(-> 因为它是一个共享文件。我认为它会引发错误 1004)。通过 Excel 工具栏保护工作表也行不通(在宏中隐藏/取消隐藏工作表对受保护的工作表不起作用)。

总结一下:

共享文件 -> 未受保护的工作表 (prb:用户可以取消隐藏隐藏的列)

共享文件 -> 受保护的工作表 (prb: 无法使用宏隐藏列)

所以我在想,我不需要保护工作表。我只想确保一旦隐藏列,用户将无法取消隐藏它们。有什么想法可以做到这一点吗?

也许,禁用用户控制或类似的东西。我对 vba 不太熟悉。

任何提示或建议都将不胜感激。

谢谢你!

答案1

@Sean 提到将隐藏数据放在不同的工作表上,这也是我的第一个想法。

我的第二个想法是使用一个自动打开的宏来检查当前用户并隐藏列,然后打开保护。这不是最安全的,因为 VBA 代码需要密码,但它确实解决了其他问题。您还可以保护代码,这将减少嵌入密码的问题。

过去,当我有一个复杂的工作簿,其中有些部分需要隐藏时,我的 personal.xls 中有一些宏可以帮助锁定/解锁和隐藏/取消隐藏相应的部分。

答案2

之前的帖子/评论中已经为您提出了一些解决方法,但是您需要知道,只要具备一些中等的 VBA 知识,就可以轻松避免所有这些问题。

如果您确实处理敏感数据,那么 Excel 可能不适合您。

由于我不知道您的全部数据,所以很难提出任何建议,但是根据您所分享的内容,SharePoint 列表似乎是一个不错的选择。

相关内容