使用VBA打开受密码保护的工作簿

使用VBA打开受密码保护的工作簿,vba,excel,Vba,Excel,我有wb1和wb2。wb1用于数据输入,wb2用于记录该数据。wb2是受密码保护的(比如说带有“密码”) 下面的VBA位于wb1中,只需单击按钮即可运行。现在,在VBA运行完成之前,会弹出一个框,请求输入wb2的密码。是否有办法使用VBA在该框中输入“密码” 我对VBA相当陌生,所以我也愿意接受其他建议。谢谢 Sub OpenClose() Application.ScreenUpdating = False Dim wb1 As Workbook Dim wb2 As Workbook

我有wb1和wb2。wb1用于数据输入,wb2用于记录该数据。wb2是受密码保护的(比如说带有“密码”)

下面的VBA位于wb1中,只需单击按钮即可运行。现在,在VBA运行完成之前,会弹出一个框,请求输入wb2的密码。是否有办法使用VBA在该框中输入“密码”

我对VBA相当陌生,所以我也愿意接受其他建议。谢谢

Sub OpenClose()

Application.ScreenUpdating = False

Dim wb1 As Workbook
Dim wb2 As Workbook

Set wb1 = ThisWorkbook
Set wb2 = Workbooks.Open("C:\Users...")  'I have taken out the rest of the file path

wb1.Activate
    Sheets("Entry").Activate
        Range("A1:A5").Select
            Selection.Copy

wb2.Activate
    Sheets("Log").Activate
        Range("A1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=True

wb2.Save
wb2.Close

Set wb1 = Nothing
Set wb2 = Nothing

MsgBox "Logged and saved."

Application.ScreenUpdating = True

End Sub

打开
wb2
时,将“password”参数作为
password
参数传递:

Set wb2 = Workbooks.Open(Filename:="C:\Users...", Password:="password")

有关更多详细信息,请参阅。

打开
wb2
时,将“password”参数作为
password
参数传递:

Set wb2 = Workbooks.Open(Filename:="C:\Users...", Password:="password")

有关更多详细信息,请参阅。

签出此代码可能会解决您要查找的问题

ThisWorkbook.Password = "1"
ThisWorkbook.Save
ThisWorkbook.Close

签出此代码可能会解决您要查找的问题

ThisWorkbook.Password = "1"
ThisWorkbook.Save
ThisWorkbook.Close

这适用于需要密码才能打开的文件。打开
wb2
时,将“password”参数作为
password
参数传递:

Set wb2 = Workbooks.Open(Filename:="C:\Users...", Password:="password")
Set wb2=workbook.Open(文件名:=“C:\Users…”,密码:=“Password”)

如果文件设置为以只读方式打开,但需要密码才能修改,请使用以下选项:


Set wb2=Workbooks.Open(文件名:=“C:\Users…”,writeresPassword:=“password”)

这适用于需要密码才能打开的文件。打开
wb2
时,将“password”参数作为
password
参数传递:

Set wb2 = Workbooks.Open(Filename:="C:\Users...", Password:="password")
Set wb2=workbook.Open(文件名:=“C:\Users…”,密码:=“Password”)

如果文件设置为以只读方式打开,但需要密码才能修改,请使用以下选项:


Set wb2=Workbooks.Open(文件名:=“C:\Users…”,writeresPassword:=“password”)

查看
工作簿。取消保护
方法。这里是它的MSDN:FWIW-您可以简单地编写
wb1.Sheets(“Entry”).Range(“A1:A5”)。复制wb2.Sheets(“Log”).Range(“A1”)
查看
工作簿。取消保护
方法。这里是它的MSDN:FWIW-您只需编写
wb1.Sheets(“条目”).Range(“A1:A5”)。复制wb2.Sheets(“日志”).Range(“A1”)
谢谢!工作很有魅力,谢谢你!工作得很有魅力。