Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA-自动输入密码_Excel_Vba_Passwords - Fatal编程技术网

Excel VBA-自动输入密码

Excel VBA-自动输入密码,excel,vba,passwords,Excel,Vba,Passwords,我想写一个Excel VBA宏来为用户自动输入密码。这样,用户无需在每次双击文件时手动输入密码。这可能吗?如果是这样的话,我该怎么做呢?正如我在评论中提到的,在我看来,您寻求的功能无法实现。让我解释一下 要在Excel文件中自动运行VBA代码,您需要将代码放置在工作簿_Open()中的此工作簿代码区域或模块中的自动_Open()中 现在,这两个sub仅在密码输入到受密码保护的文件后执行,即工作簿打开后。因此,在将密码输入到“密码”对话框或打开工作簿之前,无法运行此操作 我相信你的老板是个明智的人

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

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

要在Excel文件中自动运行VBA代码,您需要将代码放置在
工作簿_Open()
中的
此工作簿
代码区域或模块中的
自动_Open()

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

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

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

主题:在Excel启动时运行宏

链接

引用上述链接中的内容

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

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


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

看看他的链接:

这仅显示了如何获取命令行参数-一旦获得了这些参数,就可以使用:

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

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

现在,如果人们发现了这个问题,@DJ给出了正确的答案。您可以按如下方式将密码放入工作簿开启器的命令行:

Set wb=workbook.Open(文件名:=“myfile.xls”,密码:=“Password”)

我希望遇到这种情况的人不要把公认的答案当作给出的答案,而要看得更远

亲切问候,,
Pieter

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

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

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