Обработка события сохранения книги Excel - VB

Узнай цену своей работы

Формулировка задачи:

Есть папка на локальной машине и, одноименная папка на сетевом диске. Необходимо поддерживать актуальность содержимого папки на сетевом диске.
На кнопку на ленте подвешена процедура, которая, через 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.75 из 5
Похожие ответы