我正在尝试自动更新每个人都可以访问的服务器上的文件。编辑仅适用于少数人。因此,它受密码保护,但仅用于编辑而不是用于打开。
我尝试编写一个宏来打开受密码保护的文件,但这仅适用于防止打开的文件。我尝试了以下代码,因为其他人建议它可能有助于转换displayalerts和/或ignorereadonly,但这没有帮助。我不断收到一个弹出窗口,上面写着"输入密码进行写访问,或打开只读"。我甚至尝试使用SendKeys输入密码,但弹出窗口也是如此。
我可能没有任何建议吗?
Application.DisplayAlerts = False
Workbooks.Open Filename:="test.xlsx", IgnoreReadOnlyRecommended:=True, Password:="password", ReadOnly:=False
Application.DisplayAlerts = True
答案 0 :(得分:1)
Sub test()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim wb As Workbook
Dim fFilename As String
fFilename = "C:\Documents and Settings\Desktop\test.xlsx"
SetAttr fFilename, vbNormal
Set wb = Workbooks.Open(fFilename, Password:="test")
wb.Worksheets("sheet1").Range("A1").Value = "Hello"
wb.Close SaveChanges:=True
' It will set the File back to Read only
SetAttr fFilename, vbReadOnly
End Sub
答案 1 :(得分:1)
我有同样的问题,但是这篇文章帮助我弄清楚了。 只需添加用于写入文件的密码即可。添加 WriteResPassword:=“密码” 例如:设置wb = Workbooks.Open(文件名:= myPath和myFile,密码:=“ 1234abc”,WriteResPassword:=“ 1234abc”,IgnoreReadOnlyRecommended:= True)