Excel VBA – 自动input密码

我想写一个Excel VBAmacros为用户自动input密码。 这样,用户每次双击文件时都不需要手动input密码。 这可能吗? 如果是这样,我该怎么做?

正如我的评论中提到的那样,我认为您所寻求的function是无法完成的。 让我解释一下。

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

现在,这两个Subs只有在密码被input到密码保护文件,即工作簿打开后,才会执行。 因此,密码input到密码对话框之前或在打开工作簿之前,无法运行这个程序。

我相信你的老板是一个明智的人,并会明白,如果你可以很好地向他解释:)

你可能也想看到这个链接,详细解释了自动运行macros的更多细节。

主题 :Excel启动时运行macros

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

从上面的链接引用

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

logging一个macros并使用名称Auto_Open保存它。 将该macros作为Microsoft VisualBasic®for Applications(VBA)过程写入工作簿的Open事件。

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

看他的链接:

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

这只显示如何获得命令行参数 – 一旦你有这些你可以使用:

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

@iceagle,我没有足够的声望去评论@(Siddharth Routh),但是我对这个评论和答案表示遗憾,说这是毫无意义的/无用的/不能做的。
例如,如果你有一整套你想改变,但都是密码保护的excel。 如果现在你通过一个循环运行它们,你必须再次input密码(当你有1000多个文件没有时,这似乎是愚蠢的)更好的select:编码VBS的macros,它有密码,可以改变所有编码的文件! 提供给用户这个密码,现在你仍然有1000个编码文件,只有你不必每次input。

现在回答,如果有人来这个,由@DJ正确给出。 您可以将密码放入工作簿开启器的命令行中,如下所示:

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

我希望遇到这个问题的人不要按照给定的答案接受答案,而应该看得更远。

亲切的问候,彼得