Макрос Excel VBA для предоставления доступа к файлу для записи, когда отмечен атрибут свойства «Только для чтения»

В моем файле Excel отмечен этот атрибут, который я хочу.

***введите описание изображения***

Поэтому он открывается только для чтения. Этот файл время от времени нуждается в редактировании и сохранении.

Было бы неплохо иметь макрос (1), который можно было бы запускать (когда файл открыт только для чтения), который переключался бы на доступ для записи на месте.

Затем я внесу изменения и запущу макрос (2), который снова сделает его доступным только для чтения.

Таким образом, мне не нужно снимать отметку с атрибутов свойств перед тем, как перейти к редактированию, потому что иногда вы даже не знаете, придется ли вам редактировать.


person Dasal Kalubowila    schedule 17.10.2017    source источник
comment
Я не уверен, но только с VBA этого не сделать. Вам необходимо получить доступ к командной строке с помощью Shell.   -  person AntiDrondert    schedule 17.10.2017


Ответы (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

В идеале вы должны поменять местами биты, чтобы не влиять на другие атрибуты, но это должно быть сделано здесь.

person Rory    schedule 17.10.2017
comment
Спасибо, Рори. ваш код в сочетании с ActiveWorkbook.ChangeFileAccess Mode:=xlReadWrite и ActiveWorkbook.ChangeFileAccess Mode:=xlReadWrite Я могу добиться того, чего хочу. - person Dasal Kalubowila; 18.10.2017