您很熟悉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
答案 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” 接下来我