excel - 使用 VBA 打开受密码保护的文件
问题描述
嗨,对 VBA 和编码非常陌生,因此非常感谢所有帮助。
因此,我有大约 37 个文件需要使用 VBA 打开,然后获取一些数据并将其汇总到摘要中,但是谢天谢地,有些文件受密码保护,使用相同的密码。
我正在使用 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
解决方案
.Protect
和.Unprotect
是指避免用户修改脚本的功能。对于工作簿密码,您可以使用Workbook.open
上面提到的参数。
推荐阅读
- jquery - 如何根据 laravel 中选定的下拉菜单显示表格内容
- wireshark - 将日志文件转换为 PCAP
- pentaho - Pentaho org.pentaho.di.trans.steps.checksum.CheckSumMeta@5d4a34ff 错误
- perl - cpan App::cpanminus 失败并出现多个错误:“放弃解析您的 /Users/foo/.cpan/sources/modules/02packages.details.txt.gz,错误太多”
- domain-driven-design - 事件风暴:领域事件“已请求添加到购物车”是好做法还是坏做法?
- azure - Azure:删除实例及其所有相关资源(磁盘、网络接口)的脚本或命令
- android - React Native:防止屏幕在编码时被关闭
- python - 不检索任何结果的模式
- javascript - 如何创建程序数组地图(使用数组作为平铺地图)
- python - 在 Python 中为我的词法分析器制作符号表有困难吗?