打开只读工作簿进行编辑

时间:2015-10-30 10:39:01

标签: excel vba password-protection

我正在尝试自动更新每个人都可以访问的服务器上的文件。编辑仅适用于少数人。因此,它受密码保护,但仅用于编辑而不是用于打开。

我尝试编写一个宏来打开受密码保护的文件,但这仅适用于防止打开的文件。我尝试了以下代码,因为其他人建议它可能有助于转换displayalerts和/或ignorereadonly,但这没有帮助。我不断收到一个弹出窗口,上面写着"输入密码进行写访问,或打开只读"。我甚至尝试使用SendKeys输入密码,但弹出窗口也是如此。

我可能没有任何建议吗?

Application.DisplayAlerts = False
Workbooks.Open Filename:="test.xlsx", IgnoreReadOnlyRecommended:=True, Password:="password", ReadOnly:=False

Application.DisplayAlerts = True

2 个答案:

答案 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)