Примери за Excel VBA: Примери за уводни събития

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

Пример за Excel VBA: Събитието Open за работна книга

Едно от най-често използваните събития на Excel VBA е събитието Open Workbook Open. Да предположим, че имате работна книга, която използвате всеки ден. Процедурата Workbook_Open в този пример се изпълнява всеки път, когато работната книга се отвори. Процедурата проверява деня от седмицата; ако е петък, кодът показва съобщение за напомняне за вас.

За да създадете процедурата на Excel VBA, която се изпълнява всеки път, когато настъпи събитието за отваряне на работната книга, следвайте тези стъпки:

Отворете работната книга на Excel.
Всяка работна книга на Excel ще свърши работа.

Натиснете Alt+F11, за да активирате VBE.

Намерете работната книга в прозореца на проекта.

Щракнете двукратно върху името на проекта, за да покажете неговите елементи, ако е необходимо.

Щракнете двукратно върху елемента ThisWorkbook.
VBE показва празен прозорец с код за обекта ThisWorkbook.

В прозореца Код изберете Работна книга от падащия списък Обект (вляво).
VBE въвежда началните и крайните оператори за процедура Workbook_Open.

Въведете следните изрази, така че пълната процедура за събитие да изглежда така:

Частна под работна книга_Open()
  Затъмни съобщение като низ
  Ако делничен ден (сега) = 6 Тогава
    Msg = "Днес е петък. Не забравяйте да"
    Съобщение = Съобщение & "изпратете отчета за TPS!"
    MsgBox Msg
  Край, ако
Край под

Прозорецът на кода трябва да изглежда така.

Примери за Excel VBA: Примери за уводни събития

Тази процедура за обработка на събития се изпълнява при отваряне на работната книга.

Workbook_Open се изпълнява автоматично при отваряне на работната книга. Той използва функцията WeekDay на VBA, за да определи деня от седмицата. Ако е петък (ден 6), поле за съобщение напомня на потребителя да изпрати отчет. Ако не е петък, нищо не става.

Ако днес не е петък, може да ви е трудно да тествате тази процедура. Можете просто да промените 6, за да съответстват на днешния действителен номер на деня.

И разбира се, можете да промените тази процедура по всякакъв начин. Например следната версия показва съобщение всеки път, когато работната книга се отвори. Това става досадно след известно време.

Процедура Workbook_Open може да направи почти всичко. Тези манипулатори на събития често се използват за следното:

  • Показване на приветствени съобщения (като в страхотната работна книга на Франк)
  • Отваряне на други работни книги
  • Активиране на конкретен работен лист в работната книга
  • Настройване на персонализирани менюта за бърз достъп

Ето последен Excel VBA пример за процедура Workbook_Open, която използва функциите GetSetting и SaveSetting, за да следи колко пъти е била отваряна работната книга. Функцията SaveSetting записва стойност в системния регистър на Windows, а функцията GetSetting извлича тази стойност (вижте системата за помощ за подробности). Следният пример на Excel VBA извлича броя от регистъра, увеличава го и след това го записва обратно в системния регистър. Той също така казва на потребителя стойността на Cnt, която съответства на броя на отварянето на работната книга.

Частна под работна книга_Open()
  Dim Cnt As Long
  Cnt = GetSetting("MyApp", "Settings", "Open", 0)
  Cnt = Cnt + 1
  SaveSetting "MyApp", "Settings", "Open", Cnt
  MsgBox "Тази работна книга е отваряна " & Cnt & " пъти."
Край под

Примери за Excel VBA: Примери за уводни събития

Използване на манипулатор на събитие Workbook_Open, за да следите колко пъти е била отваряна работна книга.

Пример за Excel VBA: събитието BeforeClose за работна книга

Ето пример за процедурата за обработка на събития на Excel VBA Workbook_BeforeClose, която се изпълнява автоматично непосредствено преди затварянето на работната книга. Тази процедура се намира в прозореца на кода за обект ThisWorkbook:

Частна под работна книга_BeforeClose(Отказ като булева)
  Затъмни съобщение като низ
  Dim Ans As Long
  Dim FName като низ
  Msg = "Искате ли да направите резервно копие на този файл?"
  Ans = MsgBox(Msg, vbYesNo)
  Ако Ans = vbYes Тогава
    FName = "F:\BACKUP\" & This Workbook.Name
    Тази работна книга.SaveCopyAs FName
  Край, ако
Край под

Тази рутина използва поле за съобщения, за да попита потребителя дали иска да направи резервно копие на работната книга. Ако отговорът е да, кодът използва метода SaveCopyAs, за да запази резервно копие на файла на устройство F. Ако адаптирате тази процедура за ваша собствена употреба, трябва да промените устройството и пътя.

Програмистите на Excel често използват процедура Workbook_BeforeClose, за да почистят след себе си. Например, ако използвате процедура Workbook_Open, за да промените някои настройки, когато отворите работна книга (скриване на лентата на състоянието, например), е подходящо да върнете настройките в първоначалното им състояние, когато затворите работната книга. Можете да извършите това електронно домакинство с процедура Workbook_BeforeClose.

Когато използвате събитието Workbook_BeforeClose, имайте предвид това: Ако затворите Excel и всеки отворен файл е бил променен след последното записване, Excel показва обичайното си поле за съобщение „Искате ли да запазите промените си“. Щракването върху бутона Отказ отменя целия процес на затваряне. Но събитието Workbook_BeforeClose така или иначе ще бъде изпълнено.

Пример за Excel VBA: Събитието Преди запазване за работна книга

Събитието BeforeSave, както подсказва името му, се задейства преди да бъде запазена работна книга. Това събитие възниква, когато изберете Файл → Запиши или Файл → Запиши като.

Следващата процедура, която се поставя в прозореца на кода за обект ThisWorkbook, демонстрира събитието BeforeSave. Подпрограмата актуализира стойността в клетка (клетка A1 на Sheet1) всеки път, когато работната книга се записва. С други думи, клетка A1 служи като брояч за проследяване на броя на записите на файла.

Частна под работна книга_BeforeSave(ByVal SaveAsUI _
  Като булева, Отмяна като булева)
  Dim Counter As Range
  Задайте Counter = Sheets("Sheet1").Range("A1")
  Брояч.Стойност = Брояч.Стойност + 1
Край под

Забележете, че процедурата Workbook_BeforeSave има два аргумента: SaveAsUI и Cancel. За да демонстрирате как работят тези аргументи, разгледайте следния макрос, който се изпълнява, преди работната книга да бъде запазена. Тази процедура се опитва да попречи на потребителя да запази работната книга с различно име. Ако потребителят избере File → Save As, аргументът SaveAsUI е True.

Когато кодът се изпълни, той проверява стойността на SaveAsUI. Ако тази променлива е True, процедурата показва съобщение и задава Cancel на True, което отменя операцията Save.

Частна под работна книга_BeforeSave(ByVal SaveAsUI _
  Като булева, Отмяна като булева)
  Ако SaveAsUI Тогава
    MsgBox "Не можете да запазите копие на тази работна книга!"
  Отказ = Вярно
  Край, ако
Край под

Имайте предвид, че тази процедура всъщност няма да попречи на никого да запази копие с различно име. Ако някой наистина иска да го направи, той или тя може просто да отвори работната книга с деактивирани макроси. Когато макросите са деактивирани, процедурите за манипулиране на събития също са деактивирани, което има смисъл, тъй като в крайна сметка те са макроси.


Как да блокирате Microsoft Word да отваря файлове в режим само за четене в Windows

Как да блокирате Microsoft Word да отваря файлове в режим само за четене в Windows

Как да блокирам Microsoft Word да отваря файлове в режим само за четене в Windows Microsoft Word отваря файлове в режим само за четене, което прави невъзможно редактирането им? Не се притеснявайте, методите са по-долу

Как да коригирате неправилно отпечатване на документи на Microsoft Word

Как да коригирате неправилно отпечатване на документи на Microsoft Word

Как да коригирате грешки при отпечатването на неправилни документи на Microsoft Word Грешките при отпечатването на документи на Word с променени шрифтове, разхвърляни абзаци, липсващ текст или изгубено съдържание са доста чести. Въпреки това недейте

Изтрийте рисунки с писалка и маркер на вашите слайдове на PowerPoint

Изтрийте рисунки с писалка и маркер на вашите слайдове на PowerPoint

Ако сте използвали писалката или маркера, за да рисувате върху слайдовете на PowerPoint по време на презентация, можете да запазите чертежите за следващата презентация или да ги изтриете, така че следващия път, когато го покажете, да започнете с чисти слайдове на PowerPoint. Следвайте тези инструкции, за да изтриете чертежи с писалка и маркери: Изтриване на линии една в […]

Съдържание на библиотеката за стилове в SharePoint 2010

Съдържание на библиотеката за стилове в SharePoint 2010

Библиотеката със стилове съдържа CSS файлове, файлове с разширяем език на стиловия език (XSL) и изображения, използвани от предварително дефинирани главни страници, оформления на страници и контроли в SharePoint 2010. За да намерите CSS файлове в библиотеката със стилове на сайт за публикуване: Изберете Действия на сайта→Преглед Цялото съдържание на сайта. Появява се съдържанието на сайта. Библиотеката Style се намира в […]

Форматирайте числата в хиляди и милиони в отчети на Excel

Форматирайте числата в хиляди и милиони в отчети на Excel

Не затрупвайте аудиторията си с огромни числа. В Microsoft Excel можете да подобрите четливостта на вашите табла за управление и отчети, като форматирате числата си така, че да се показват в хиляди или милиони.

Как да споделяте и следвате сайтове на SharePoint

Как да споделяте и следвате сайтове на SharePoint

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

Как да конвертирате дати в юлиански формати в Excel

Как да конвертирате дати в юлиански формати в Excel

Юлианските дати често се използват в производствени среди като времеви печат и бърза справка за партиден номер. Този тип кодиране на дата позволява на търговците на дребно, потребителите и обслужващите агенти да идентифицират кога е произведен продуктът и по този начин възрастта на продукта. Юлианските дати се използват и в програмирането, военните и астрономията. Различно […]

Как да създадете уеб приложение на Access

Как да създадете уеб приложение на Access

Можете да създадете уеб приложение в Access 2016. И така, какво всъщност е уеб приложение? Е, уеб означава, че е онлайн, а приложението е просто съкращение от „приложение“. Персонализирано уеб приложение е онлайн приложение за база данни, достъпно от облака с помощта на браузър. Вие създавате и поддържате уеб приложението в настолната версия […]

Лента за бързо стартиране в SharePoint 2010

Лента за бързо стартиране в SharePoint 2010

Повечето страници в SharePoint 2010 показват списък с връзки за навигация в лентата за бързо стартиране в лявата част на страницата. Лентата за бързо стартиране показва връзки към представено съдържание на сайта, като списъци, библиотеки, сайтове и страници за публикуване. Лентата за бързо стартиране включва две много важни връзки: Връзка към цялото съдържание на сайта: […]

Какво означават съобщенията за грешка на Solver в Excel?

Какво означават съобщенията за грешка на Solver в Excel?

За прости проблеми Solver в Excel обикновено бързо намира оптималните стойности на променливата Solver за целевата функция. Но в някои случаи Solver има проблеми с намирането на стойностите на променливата Solver, които оптимизират целевата функция. В тези случаи Solver обикновено показва съобщение или съобщение за грешка, което описва или обсъжда проблема, който […]