下面的代碼將根據提供給過程的參數,更改已關閉文件的ReadOnly屬性,並將其ReadOnly屬性設置爲True或False。
Private Sub SetReadOnlyProperty(Fn As String, _
ByVal ReadOnly As Boolean)
' 21 Nov 2017
Dim Fso As Object
Dim Doc As Object
Set Fso = CreateObject("Scripting.FileSystemObject")
Set Doc = Fso.GetFile(Fn)
If (Doc.Attributes And vbReadOnly) <> Abs(Int(ReadOnly)) Then
Doc.Attributes = Doc.Attributes Xor vbReadOnly
End If
End Sub
此過程需要訪問MS腳本運行時DLL。通過從VBE窗口中的Tools> References選中Miscrosoft Scripting Runtime
框來啓用此訪問。以下是如何調用該函數的示例。請注意,如果提供的文件不存在,則會導致錯誤。
Private Sub TestReadOnly()
SetReadOnlyProperty "H:\Test Folder\Test File.docx", False
End Sub
您需要打開文件「只讀」和「另存爲」一個可編輯的文檔。使用'Kill'命令刪除原始文件。 – Variatus
@Variatus,請您詳細說明我需要執行另存爲可編輯文檔的命令嗎?這裏是我曾嘗試過的,沒有工作(新文檔也以只讀方式打開):
'Set oWd = Documents.Open(origFile)' 'oWd.SaveAs2 FileName:=newFile, ReadOnlyRecommended:=False' 'oWd.Close' 'Set oWd = Documents.Open(newFile)'
– user3617389另外,對不起,我無法弄清楚我的評論linebreaks :(。 – user3617389