vba - 从vba打开受密码保护的excel文件,无需密码提示

标签 vba excel password-protection

我必须每天打开一个 Excel 文件并刷新内容才能获取最新的销售数据。我想通过 Windows 任务调度来自动执行此操作。由于 excel 文件受密码保护,我读到最好的方法是使用 workbook_open-macro 创建另一个 excel 文件,以打开所需的 excel 文件。 但问题是,我找到的代码仍然提示用户输入密码。我直接回车就可以打开了,但是为什么还是有提示呢?我正在使用 Excel 365,是否有解决方法,或者我做错了什么?

我用 ReadOnly:=False 尝试过,没有的话,没有任何改变。如果我设置 ReadOnly:=True,它可以工作,但更改后我无法保存文件。

这是我正在使用的代码:

Sub Workbook_Open()
  Application.DisplayAlerts = False
  Workbooks.Open Filename:="Path\file.xlsx", Password:="*****", ReadOnly:=False
  Application.DisplayAlerts = True
  ThisWorkbook.Close SaveChanges:=False
End Sub

最佳答案

工作簿是否受密码保护或写保留?

写保留文件在没有正确密码的情况下只能以只读方式打开,而受密码保护的文件根本无法打开。

如果工作簿是写保留的,正确的命令应该是:

Workbooks.Open Filename:="Path\file.xlsx", WriteResPassword:="*****", ReadOnly:=False

关于vba - 从vba打开受密码保护的excel文件,无需密码提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40487814/

相关文章:

vba - 通过从带有换行符 : VBA 的单元格值创建消息来在电子邮件中新建行

excel - 将 Excel 数字复制到剪贴板时的小数精度

javascript - 如何让浏览器保存密码,即使它没有将密码发送到服务器

HTML5 创建隐藏文本的字段,但可以复制/粘贴

android - 密码保护应用程序按钮

vba - 是否可以将范围传递给用户表单属性?

vba - 如何将多列转换为单列?

sql - 在 Excel 2013 中查询超过 65536 行错误

excel - ROBDC SqlSave : How to export data into Excel sheets?

excel - 根据 Excel 中单个单元格的值创建数组