События рабочей книги - Не сохраняйте с фиксированными панелями - Примеры кода VBA

Заморозить панели с помощью VBA

Недавно я писал о замораживании панелей в Excel, вот как это можно сделать с помощью VBA:

Заморозить строки

 Строки ("1: 1"). Выберите ActiveWindow.FreezePanes = True. 

Закрепить столбцы

 Диапазон ("A: A"). Выберите ActiveWindow.FreezePanes = True.

Закрепить строки и столбцы

 Диапазон ("B2"). Выберите ActiveWindow.FreezePanes = True.

Панели UnFreeze

 ActiveWindow.FreezePanes = Ложь 

Принудительное сохранение рабочей книги без закрепления панелей

Excel позволяет нам управлять вещами через события. Эта статья не является подробным описанием событий или их особенностей. Вместо этого он дает пример события WorkBook. Это события, которые проводятся на уровне книги, а не на конкретном листе.

С помощью VBA мы можем контролировать, что происходит при определенных событиях, например, перед печатью или перед сохранением. Одна из распространенных проблем, с которыми я сталкиваюсь, заключается в том, что ряду людей, с которыми я работаю, не нравятся файлы с фиксированными панелями.

Итак, в этой статье мы соберем код, который будет проверять, включены ли Freeze Panes, и если да, то файл не будет сохранен. Это означает, что мне нужно сохранить его без замораживания - чтобы мои коллеги были довольны !!

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

Чтобы получить доступ к уровню книги, выполните следующие действия:

1. Щелкните правой кнопкой мыши книгу Excel - просмотрите код:

2. Это вызовет:

3. Дважды щелкните «Эта книга», а затем выберите «Рабочая книга» в первом раскрывающемся списке слева:

Мы видим, что значение слева теперь изменилось на «Открыть» - с некоторым кодом для события открытия книги. Этот код позволит нам определить, что происходит, когда книга открывается в первый раз.

Однако мы хотим контролировать, что происходит, когда мы сохраняем книгу. Поэтому измените правое раскрывающееся меню на «Перед сохранением». Экран теперь будет выглядеть так:

Теперь мы вставляем следующий код после объявления:

Если ActiveWindow.FreezePanes = True, то MsgBox "Freeze Panes on - File is NOT SAVED" Cancel = True End If

Итак, теперь полный код выглядит так:

Private Sub Workbook_BeforeSave (ByVal SaveAsUI As Boolean, Cancel As Boolean) Если ActiveWindow.FreezePanes = True, то MsgBox "Freeze Panes on - File is NOT SAVED" Cancel = True End If End Sub

Теперь сохраните файл и ЗАТЕМ активируйте Freeze Panes в любом окне. Затем - ВОССТАНОВИТЕ файл. Появится сообщение о том, что «Freeze Panes» включен - и файл не сохранен.

Действительно, файл не будет сохранен, пока не будут удалены области замораживания.

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave