我的Excel文件有這個屬性打勾,我想要的。當只讀屬性屬性打勾時,Excel VBA宏給文件的寫入權限
因此,它打開只讀的。該文件偶爾需要編輯和保存。
如果有一個宏(1)可以運行(當文件以只讀方式打開時),它將切換到「寫入訪問」,這將是很好的。
然後,我會進行更改並運行宏(2),使其再次只讀。
這樣我就不必在進入編輯之前取消選中屬性屬性,因爲有時候您甚至不知道是否需要編輯。
我的Excel文件有這個屬性打勾,我想要的。當只讀屬性屬性打勾時,Excel VBA宏給文件的寫入權限
因此,它打開只讀的。該文件偶爾需要編輯和保存。
如果有一個宏(1)可以運行(當文件以只讀方式打開時),它將切換到「寫入訪問」,這將是很好的。
然後,我會進行更改並運行宏(2),使其再次只讀。
這樣我就不必在進入編輯之前取消選中屬性屬性,因爲有時候您甚至不知道是否需要編輯。
你可以使用這樣的程序:
Sub MakeReadOnly(sFile As String, Optional bReadOnly As Boolean = True)
SetAttr sFile, IIf(bReadOnly, vbReadOnly, vbNormal)
End Sub
這樣調用使其只讀:
MakeReadOnly "C:\blah.xlsx"
,並清除只讀:
MakeReadOnly "C:\blah.xlsx", False
理想情況下,你會交換位,所以你不會影響其他屬性,但這應該在這裏做。
謝謝Rory。你的代碼加上ActiveWorkbook.ChangeFileAccess模式:= xlReadWrite和ActiveWorkbook.ChangeFileAccess模式:= xlReadWrite我可以實現我想要的。 –
我不確定,但只能用VBA做不到。您需要通過'Shell'訪問*命令行*。 – AntiDrondert