【问题标题】:Opening Password Protected Workbooks Only Works One PC打开受密码保护的工作簿仅适用于一台 PC
【发布时间】:2019-08-12 15:25:29
【问题描述】:

tldr;受密码保护的工作簿需要在同事 PC 上输入密码,但我不需要。 我有一个宏,它通过链接到外部工作簿的母版表运行。流程是:

  1. 它通过单​​元格中的链接打开工作簿
  2. 在工作簿上迭代
  3. 保存并关闭
  4. 到列表中的下一个

打开的工作簿都具有相同的密码并使用:

Workbooks.Open

Password:="password", WriteResPassword:="password"

在我的电脑上运行良好,但当我尝试在同事电脑上运行时,宏需要输入密码。

到目前为止,Google 并没有提供太多帮助。任何人都可以帮助解释为什么代码在我的密码上输入密码,但在另一台电脑上却没有。非常感谢所有帮助。

【问题讨论】:

  • 宏在哪里?具体来说,代码存在于哪个模块中?它是在工作簿、工作表还是模块中?您是否不小心将代码保存在仅存在于您计算机上的个人宏工作簿中?
  • 嗨,HackSlash,它在我个人工作簿的一个模块中,然后导出到我同事的个人工作簿中

标签: excel vba


【解决方案1】:

特定于工作簿的宏应该存在于它们所处理的工作簿中。

将 VBA 模块移至打开子工作簿的主工作簿。在那里测试代码,看看它是否可以在不同的 PC 之间工作。

【讨论】:

  • 非常感谢,这行得通。有没有/是什么原因在我的个人工作簿上很好,但在他们的个人工作簿上却不行?它指向共享驱动器上的同一个共享文件?
  • 难以远程诊断的原因有很多。我需要查看两台 PC 上的 VBE 窗口是什么样的,以及完整的代码。经验法则是,您应该放在个人工作簿中的唯一代码是可以在任何地方使用的通用函数。如果您的代码有任何硬编码路径,这很好地表明它是特定于工作簿的代码。事件代码必须放在发生事件的工作表或工作簿中。您需要为全局公共程序使用模块。
  • 这是有道理的。再次感谢您对我的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-05
  • 1970-01-01
  • 2015-05-16
  • 2012-12-09
  • 1970-01-01
  • 2018-06-28
  • 1970-01-01
相关资源
最近更新 更多