以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何以编辑方式打开 带密码的Excel 文件  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=191966)

--  作者:creastzh
--  发布时间:2024/5/19 12:53:00
--  如何以编辑方式打开 带密码的Excel 文件
帮助里提供了打开Excel的方式, 但没有提供以编辑方式打开带密码的excel文件, 我试了几种不同方式,均未成功, 请哪位老师能给个解决方案, 谢谢!
--  作者:有点蓝
--  发布时间:2024/5/19 20:35:00
--  
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=190304
--  作者:creastzh
--  发布时间:2024/5/22 6:38:00
--  
我按 
 Dim doc As MSExcel.Workbook = App.WorkBooks.Open(ProjectPath & "abc.xls", password:="123zhb") 
修改程序:

Dim fp1, ff1, fpf1 As String
fp1 = "T:\\Logistic\\Purchase\\Purchase Order\\采购申请跟踪\\"
ff1 = "采购申请单2021~.xlsm"
fpf1 = "T:\\Logistic\\Purchase\\Purchase Order\\采购申请跟踪\\采购申请单2021~.xlsm"
Dim App As New MSExcel.Application
App.DisplayAlerts = False
App.visible = True
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(fpf1, Password:="001")  \'实际文件路径,密码
App.run("Update_Purchase_Application")
Wb.Save
App.quit

运行到这条语句还是出现了要求输入密码的对话框, 只有我输入了密码"001"才继续运行.

不知是何原因?

--  作者:有点蓝
--  发布时间:2024/5/22 8:33:00
--  
把文件发上来测试一下
--  作者:creastzh
--  发布时间:2024/5/23 9:52:00
--  
我把语句改成了 
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(fpf1, WriteResPassword:="001", updatelinks:=False, IgnoreReadOnlyRecommended:=True, Notify:=False) \'实际文件路径,密码

运行正常了, 这个让我想起来我的Excel并不是完全意义上的输入密码产能打开的那种文件存储方式,而是提供了"只读"选项的那种, 故更改为VBA中 的方式就正常了.

您的提醒让我解决了这个问题, 感谢老师!