关于Excel VBA:Excel VBA-自动输入密码

Excel VBA - Automatically Input Password

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


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

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

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

我希望遇到此问题的人们不要接受给出的可接受答案,而是要进一步看。

亲切的问候,
彼得


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

看他的链接:

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

这仅显示了如何获取命令行参数-拥有这些参数后就可以使用:

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


正如我的评论中提到的那样,我认为您无法找到所需的功能。让我解释一下。

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

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

我确信你的老板是一个明智的人,会理解你能否向他解释得很好:)

您可能还希望看到此链接,其中详细说明了有关自动运行宏的详细信息。

主题:Excel启动时运行宏

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

从以上链接引用

If you want to automatically perform certain actions whenever you start Microsoft Excel, you can record or write a macro that will run whenever you open a workbook. There are two ways to do this:

Record a macro and save it using the name Auto_Open.
Write the macro as a Microsoft Visual Basic? for Applications (VBA) procedure for the Open event of a workbook.