【问题标题】:Excel VBA - Automatically Input PasswordExcel VBA - 自动输入密码
【发布时间】:2012-07-04 20:00:36
【问题描述】:

我想编写一个 Excel VBA 宏来自动为用户输入密码。这样,用户无需每次双击文件时手动输入密码。这可能吗?如果是这样,我该怎么做?

【问题讨论】:

  • 别担心 ;-) 我认为不可能做到这一点,除非你使用像装载机这样的东西。但是恕我直言,自动输入密码毫无意义。在这种情况下,您也可以删除密码。
  • 当您双击文件时,宏将如何从 VBA 输入密码?还是您想启动一个文件,然后通过宏输入密码?
  • 或者你指的是VBA密码?
  • "当您双击文件时,宏将如何从 VBA 中输入密码?"这正是我想知道的。
  • 如果为用户输入密码,它实际上与使用空白密码相同。我同意@Siddharth Rout 解释如何在密码对话框之前无法运行宏。

标签: excel vba passwords


【解决方案1】:

正如我在评论中提到的,在我看来,您寻求的功能无法完成。让我解释一下。

要在 Excel 文件中自动运行 VBA 代码,您需要将代码放在 Workbook_Open() 代码区的 ThisWorkbook 或模块中的 Auto_Open() 中。

现在这两个 Subs 仅在密码保护文件中输入密码后执行,即在工作簿打开后。因此,在将密码输入密码对话框或打开工作簿之前,这是无法运行的。

我相信你的老板是个通情达理的人,如果你能很好地向他解释,我会理解的:)

您可能还想查看此链接,其中详细说明了有关自动运行宏的更多详细信息。

主题:Excel启动时运行宏

链接http://office.microsoft.com/en-us/excel-help/running-a-macro-when-excel-starts-HA001034628.aspx

引用以上链接

如果您希望在启动 Microsoft Excel 时自动执行某些操作,您可以录制或编写一个宏,该宏将在您打开工作簿时运行。有两种方法可以做到这一点:

录制宏并使用名称 Auto_Open 保存。 将宏编写为 Microsoft Visual Basic® for Applications (VBA) 过程,用于工作簿的 Open 事件。

【讨论】:

    【解决方案2】:

    没有用于传递密码的命令行参数。但是您可以做的是有一个“打开器”电子表格,它以电子表格名称和密码作为参数,并使用 VBA 打开受密码保护的电子表格。

    看他的链接:

    https://superuser.com/questions/438842/excel-workbook-desktop-shortcut-with-auto-password

    这仅向您展示了如何获取命令行参数 - 一旦您拥有了可以使用的参数:

    Workbooks.Open "filename", , , , "Password"
    

    【讨论】:

      【解决方案3】:

      @iceagle,我没有足够的声誉来“评论”@(Siddharth Routh),但我很遗憾 cmets 以及说它没有意义/无用/无法完成的答案。
      例如,如果您有一整套要更改但都受密码保护的 excel。如果现在你通过循环运行它们,你必须每次再次输入密码(当你有 1000 多个文件时似乎很愚蠢?)更好的选择:编码 VBS 的宏,其中包含密码,因此可以更改所有编码文件!向用户提供此密码,现在您仍然有 1000 个编码文件,只是您不必每次都输入。

      现在回答,如果人们遇到这个问题,@DJ 给出了正确的答案。您可以将密码输入到工作簿打开器的命令行中,如下所示:

      Set wb = Workbooks.Open(Filename:="myfile.xls", Password:="password")

      我希望遇到此问题的人不要将已接受的答案视为给定的,而是进一步观察。

      亲切的问候, 彼得

      【讨论】:

        【解决方案4】:

        据我所知,您可以使用以下代码解锁 Excel 工作簿/工作表密码,但您无法取消保护 VBA 项目密码。

        Workbooks("Book1").Unprotect Password:="password"
        Worksheets("Sheet1").Unprotect "Password"
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-05-12
          • 1970-01-01
          • 1970-01-01
          • 2013-06-15
          相关资源
          最近更新 更多