Обработка события сохранения книги Excel - VB
Формулировка задачи:
Есть папка на локальной машине и, одноименная папка на сетевом диске. Необходимо поддерживать актуальность содержимого папки на сетевом диске.
На кнопку на ленте подвешена процедура, которая, через Replace в полном имени файла последовательно сохраняет книгу в локальной папке и в сетевой...
Но я иногда забываю про кнопку и сохраняю файл только в локальной папке! Хочу написать обработку события сохранения книги, с тем чтобы, в случае если книга лежит в заданной папке, срабатывала вышеуказанная процедура.
Проблема, для меня по крайней мере, в том, что хранимые файлы макросов не содержат в принципе, а ЭтаКнига в PERSONAL.XLSB обрабатывает события самой PERSONAL.XLSB. Т.е. я вижу задачу научить PERSONAL.XLSB обрабатывать события любой книги Excel, а как это сделать не понимаю.
На кнопку на ленте подвешена процедура, которая, через Replace в полном имени файла последовательно сохраняет книгу в локальной папке и в сетевой...
Но я иногда забываю про кнопку и сохраняю файл только в локальной папке! Хочу написать обработку события сохранения книги, с тем чтобы, в случае если книга лежит в заданной папке, срабатывала вышеуказанная процедура.
Проблема, для меня по крайней мере, в том, что хранимые файлы макросов не содержат в принципе, а ЭтаКнига в PERSONAL.XLSB обрабатывает события самой PERSONAL.XLSB. Т.е. я вижу задачу научить PERSONAL.XLSB обрабатывать события любой книги Excel, а как это сделать не понимаю.
Решение задачи: «Обработка события сохранения книги Excel»
textual
Листинг программы
' Code of ThisWorkbook/ЭтаКнига module Private WithEvents App As Application Private Sub Workbook_Open() Set App = Application End Sub Private Sub App_WorkbookBeforeSave(ByVal Wb As Workbook, ByVal SaveAsUI As Boolean, Cancel As Boolean) Const NetPath = "\\Server1\Share1\" ' <-- Change to suit Dim f As String f = NetPath & Me.Name If Len(Dir(f)) > 0 Then SetAttr f, vbNormal Wb.SaveCopyAs f SetAttr f, vbReadOnly End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д