Събития от работна книга - не спестявайте с замръзващи панели - примери за код на VBA

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

Наскоро публикувах на замразяващи панели в Excel, ето как можете да го направите с помощта на VBA:

Замразяване на редове

 Редове ("1: 1"). Изберете ActiveWindow.FreezePanes = Вярно 

Замразяване на колони

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

Замразяване на редове и колони

 Диапазон ("B2"). Изберете ActiveWindow.FreezePanes = Истина

Размразете стъклата

 ActiveWindow.FreezePanes = False 

Принудете работната книга да записва без замразяване на панели

Excel ни позволява да контролираме нещата чрез събития. Тази статия не е подробна дискусия за това какви са събитията или техните характеристики. Вместо това той дава пример за събитие на работна книга. Това са събития, които се провеждат на ниво работна книга, а не на определен работен лист.

Чрез VBA можем да контролираме какво се случва при определени събития, например преди отпечатване или преди запазване. Един често срещан проблем, с който се сблъсквам, е, че редица хора, с които работя, не харесват файлове със замразени панели.

Така че в тази статия ще съберем код, който ще провери дали Freeze Panes е включен и ако е така, той няма да запише файла. Това означава, че трябва да го запиша без стъпки за замразяване - да зарадвам колегите си !!

Най -важното при събитията в работната книга е, че те трябва да бъдат записани на правилното място - на ниво работна книга.

За достъп до нивото на работната книга следвайте стъпките по -долу:

1. Щракнете с десния бутон върху работна книга на Excel - преглед на кода:

2. Това ще покаже:

3. Щракнете двукратно върху „Тази работна книга“ и след това изберете „Работна книга“ от първото падащо меню вляво:

Виждаме, че стойността от лявата страна сега се е променила на „Отваряне“ - с някакъв код за събитието за отваряне на работната книга. Този код ще ни позволи да определим какво се случва, когато работната книга се отвори за първи път.

Искаме обаче да контролираме какво се случва, когато запазваме работната книга. Така че променете падащото меню отдясно на „Преди запазване“. Сега екранът ще изглежда така:

Сега вмъкваме следния код след декларацията:

Ако ActiveWindow.FreezePanes = Вярно, тогава MsgBox "Замразяването на панелите е включено - Файлът НЕ Е ЗАПАЗЕН" Отказ = Истински край Ако

Така че пълният код сега изглежда така:

Private Sub Workbook_BeforeSave (ByVal SaveAsUI като Boolean, Cancel As Boolean) Ако ActiveWindow.FreezePanes = Вярно Тогава MsgBox "Замразяване на панели е включено - Файлът НЕ СЕ ЗАПАЗВА" Отказ = True End Ако End Sub

Сега запишете файла и след това активирайте Freeze Panes във всеки прозорец. След това - ЗАПАЗЕТЕ файла. Ще се появи съобщение с съобщение, че „Freeze Panes“ е включено - и файлът не е запазен.

Всъщност файлът няма да бъде запазен, докато не бъдат премахнати Freeze Panes.

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave