我想编写一个Excel VBA宏来自动为用户输入密码。这样,用户每次双击文件时都不需要手动输入密码。这可能吗?如果是这样,我该怎么做?
答案 0 :(得分: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进行保存。 将宏编写为工作簿的Open事件的MicrosoftVisualBasic®forApplications(VBA)过程。
答案 1 :(得分:1)
没有命令行参数来传递密码。但你能做的就是拥有一个开启者"电子表格将电子表格名称和密码作为参数并使用VBA打开受密码保护的电子表格。
看看他的链接:
https://superuser.com/questions/438842/excel-workbook-desktop-shortcut-with-auto-password
只显示如何获取命令行参数 - 一旦有了可以使用的参数:
Workbooks.Open "filename", , , , "Password"
答案 2 :(得分:1)
@iceagle,我没有足够的声誉来评论"在@(Siddharth Routh),但我感到遗憾的是评论和答案,说它没有意义/没用/无法完成。
例如,如果您有一整套要更改的Excel,但都受密码保护。如果你现在通过一个循环运行它们你必须每次都输入密码(当你有1000多个文件没有时看起来很愚蠢吗?)一个更好的选择:编码VBS的宏,它有密码,可以改变所有编码文件!为用户提供此密码,现在您仍然拥有1000个编码文件,只需每次都不必输入。
现在回答一下,如果有人提出这个问题,那么@DJ会正确地给出答案。您可以将密码放入工作簿开启工具的命令行中,如下所示:
Set wb = Workbooks.Open(Filename:="myfile.xls", Password:="password")
我希望遇到这种情况的人不会接受所接受的答案,但要进一步观察。
亲切的问候, 彼得
答案 3 :(得分:-1)
据我所知,您可以使用以下代码解锁 Excel 工作簿/工作表密码,但是您无法取消对 VBA
项目密码的保护。
Workbooks("Book1").Unprotect Password:="password"
Worksheets("Sheet1").Unprotect "Password"