Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.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 如何使用用户窗体在宏中打开受密码保护的文件?_Excel_Passwords_Userform_Vba - Fatal编程技术网

Excel 如何使用用户窗体在宏中打开受密码保护的文件?

Excel 如何使用用户窗体在宏中打开受密码保护的文件?,excel,passwords,userform,vba,Excel,Passwords,Userform,Vba,我有一个密码保护的excel文件,我需要在宏中使用,但我担心密码会每月更改。为了访问该文件,我想创建一个用户表单,以便在每次运行宏时输入密码。以下是我对该子系统的目标: 选择要打开的文件 在用户表单中输入密码(如果文件受保护) 使用所选路径和密码打开文件 我可以自己完成步骤1和步骤3,但我不确定如何将用户表单合并到此sub中。您将如何解决此问题?感谢@Scott Craner的提示,我能够找到解决方案。以下是我使用的: If MsgBox("Is the APPS Invoice passwor

我有一个密码保护的excel文件,我需要在宏中使用,但我担心密码会每月更改。为了访问该文件,我想创建一个用户表单,以便在每次运行宏时输入密码。以下是我对该子系统的目标:

  • 选择要打开的文件
  • 在用户表单中输入密码(如果文件受保护)
  • 使用所选路径和密码打开文件

  • 我可以自己完成步骤1和步骤3,但我不确定如何将用户表单合并到此sub中。您将如何解决此问题?

    感谢@Scott Craner的提示,我能够找到解决方案。以下是我使用的:

    If MsgBox("Is the APPS Invoice password protected?", vbYesNo, "APPS Invoice") = vbYes Then
        pass = Application.InputBox("Please enter the password now:", Type:=2)
    End If
    
    On Error GoTo ErrHandler
    Set APPSInvoiceWB = Workbooks.Open(APPSInvoiceFN, Password:=pass)
    On Error GoTo 0
    

    我用一个没有密码保护的文件进行了测试,没有出现问题。我在搜索中没有找到太多关于这个话题的信息,所以我希望这对以后的其他人有帮助

    如果需要的唯一信息是密码,我会使用inputbox而不是userform。我以前从未使用过inputbox。谢谢你的建议!看起来这也许能很好地解决我的问题。我会带着我的发现回来。