2017-10-17 83 views
0

我的Excel文件有這個屬性打勾,我想要的。當只讀屬性屬性打勾時,Excel VBA宏給文件的寫入權限

***enter image description here***

因此,它打開只讀的。該文件偶爾需要編輯和保存。

如果有一個宏(1)可以運行(當文件以只讀方式打開時),它將切換到「寫入訪問」,這將是很好的。

然後,我會進行更改並運行宏(2),使其再次只讀。

這樣我就不必在進入編輯之前取消選中屬性屬性,因爲有時候您甚至不知道是否需要編輯。

+0

我不確定,但只能用VBA做不到。您需要通過'Shell'訪問*命令行*。 – AntiDrondert

回答

1

你可以使用這樣的程序:

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 

理想情況下,你會交換位,所以你不會影響其他屬性,但這應該在這裏做。

+0

謝謝Rory。你的代碼加上ActiveWorkbook.ChangeFileAccess模式:= xlReadWrite和ActiveWorkbook.ChangeFileAccess模式:= xlReadWrite我可以實現我想要的。 –