使用VBA打开受密码保护的文件

时间:2020-05-13 01:43:49

标签: excel vba

您很熟悉VBA和编码,因此非常感谢所有帮助。

因此,我大约需要使用VBA打开37个文件,然后获取一些数据并将其汇总成摘要,但是值得庆幸的是,其中一些文件使用相同的密码进行了密码保护。

我正在使用Application.Get Open文件名来获取所有文件的位置,然后使用从1到n的循环来打开FileNames(i),我该怎么做,以便在打开工作簿时它要求输入密码“ password1”。

我尝试过ActiveWorkbook.Unprotect Password:="Password",但是似乎无法正常工作,因为需要先打开工作簿才能取消保护。

Sub Aggregation_Data()
Dim FileNames As Variant, i As Integer, j As Integer
Dim TWB As Workbook, aWB As Workbook



Set TWB = ThisWorkbook

MsgBox ("Enter Files that you wish to import data from")

FileNames = Application.GetOpenFilename(FileFilter:="Excel Filter (*.xlsx), *xlsx", Title:="Open File(s)", MultiSelect:=True)

For i = 1 To UBound(FileNames)

Workbooks.Open FileNames(i)
ActiveWorkbook.Unprotect Password:="Password"


Next i

End Sub

enter image description here

3 个答案:

答案 0 :(得分:0)

在您的For循环中,尝试:

Workbooks.Open(文件名(i),密码:=“密码”)

答案 1 :(得分:0)

.Protect.Unprotect是指避免用户修改脚本的功能。对于工作簿密码,可以使用如上所述的Workbook.open参数。

答案 2 :(得分:0)

所以我发现可以共享的答案实际上只是在正确的位置加上了逗号。

设置TWB = ThisWorkbook Application.ScreenUpdating = False FileNames = Application.GetOpenFilename(FileFilter:=“ Excel筛选器(* .xlsx),* xlsx”,标题:=“打开文件”,MultiSelect:= True)

对于i = 1到UBound(文件名) Workbooks.Open FileNames(i),密码:=“ Password” 接下来我