Събития с вградена диаграма с помощта на VBA в Excel

Съдържание:

Anonim

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

И така, има две стъпки за активиране на събитие с вградена диаграма. Първо е създаването на клас събития в диаграмата и дефинирането на събития. Второ е създаването на обект от този клас събития. Това е.

Стъпка 1: Създайте клас на събитие в диаграма и дефинирайте събития

  • Поставете модул на клас. Назовете го както искате. Нарекох го ChartClass.
  • Определете променлива на събитие от тип Диаграма с ключова дума WithEvents.
    Частни WithEvents CEvents As Chart
  • Инициализирайте това събитие в подпрограмата class_initialize ().
    От падащото меню вляво изберете клас. След това в горния десен падащ прозорец изберете инициализиране.

    Частен подклас_Initialize () Задайте CEvents = ActiveSheet.ChartObjects (1). 

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

  • Сега определете събитията, които искате да използвате. От падащото меню в горния ляв ъгъл изберете обекта CEvent. Всички налични процедури за обработка на събития ще бъдат достъпни за вас в горното дясно падащо меню. Изберете каквото ви е необходимо и определете какво искате да направите, когато това събитие се задейства.
    За да демонстрирам използването, избирам събитието CEvents_Activate. Ще се опитам да покажа на потребителя, че събитието в диаграмата е активирано в поле за съобщения.

    Private Sub CEvents_Activate () MsgBox "Събитията в диаграмата работят" End Sub 

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

Стъпка 2: Създайте обект клас диаграма в модула.

  • Поставете нормален модул.
  • Декларирайте променлива на класа, който сте създали преди.
    Затъмнете моята диаграма като ChartClass
  • Създайте поддиапазон и инициализирайте променливата с обекта на клас ChartClass.
    Под активиранеChartEvent () Задайте mychart = Нова крайна подкарта на ChartClass

  • Стартирайте този подводник с помощта на F5. Тъй като ще изпълнявате този код, събитията в диаграмата ще бъдат активни за първата диаграма на текущо активния лист, тъй като използвахме този ред за инициализиране на набор от събития на диаграма CEvents = ActiveSheet.ChartObjects (1) .Chart.

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

Включване и изключване на събития от приложението VBA

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

  • Анулиране на обекта на събитието
  • Задайте EnableEvents на False

1. Анулиране на обекта на събитието

В отделна подпрограма задайте обекта на събитието на Nothing

Private Sub StopEvents () Set Mychart = Nothing End Sub

След като стартирате този код, събитията ще спрат да работят. Можете да го поставите в бутон на работния лист, за да спрете събитията. Сега ще имате два бутона за стартиране и спиране на тези конкретни събития. Той просто ще спре събития, създадени от обекта AppE.

2. Задайте EnableEvents на False

Вторият метод е да деактивирате събитията. За да направим всички събития недоловими, ние задаваме свойството EnableEvents на клас Application наФалшиво.

Private Sub StopEvents () Application.EnableEvents = Подложка за фалшив край

Горният код ще деактивира всички събития. Дори събитията по подразбиране в Excel. Те няма да работят, докато не ги стартирате отново. Дори ако стартирате подпрограмата StartEvents () (по -горе), събитието няма да работи. За да заработите отново всички събития, ще трябва да зададете свойството EnableEvents отново на True.

Така че, ако искате вашите събития да работят всеки път, когато стартирате събитията, добавете този ред код в подсистемата.

Private Sub StartEvents () Application.EnableEvents = True Set mychart = Нова ChartClass End Sub

Стартиране на събития в графика на клиента при всяко отваряне на работна книга

Ако разработвате инструмент за краен потребител, може да искате събитията да работят автоматично. В този случай можете да поставите стартера на събитието в обекта на работната книга със събитие Workbook_open (), вместо в нормален модул. Това ще направи вашия обект на събитие инициализиран веднага щом отворите работната книга, която съдържа събитията.

Така че да, момчета, ето как можете да използвате събитието с вградена диаграма в Excel. Кажете ми дали това е достатъчно обяснително и ви е помогнало да разберете събитията на ниво приложение в Excel VBA. Запишете мислите си в секцията за коментари по -долу. Ако имате какво да добавите към това, напишете и това. Можете да зададете вашите запитвания, свързани с тази статия или друга тема, свързана с Excel VBA, в секцията за коментари по -долу.

Изтеглете работния файл по -долу:

Събитията в Excel VBA |В Excel има седем вида събития. Всяко събитие се занимава в различен обхват. Събитието за приложение се занимава на ниво работна книга. Работна тетрадка на ниво листове. Събитие на работен лист на ниво Range.

Събития на работния лист в Excel VBA| Събитието на работния лист е наистина полезно, когато искате вашите макроси да се изпълняват, когато на листа се появи определено събитие.

Събития от работна книга, използващи VBA в Microsoft Excel | Събитията от работната книга работят върху цялата работна книга. Тъй като всички листове са част от работната книга, тези събития работят и върху тях.

Предотвратяване на автоматични/eventmacro изпълнения с помощта на VBA в Microsoft Excel| За да предотвратите изпълнението на макроса auto_open, използвайте клавиша shift.

Диаграми на обектни събития с помощта на VBA в Microsoft Excel| Диаграмите са сложни обекти и има няколко компонента, които сте прикрепили към тях. За да направим Chart Events използваме модула Class.

Популярни статии:

50 преки пътища в Excel за повишаване на вашата производителност | Бъдете по -бързи в задачата си. Тези 50 преки пътища ще направят работата ви още по -бърза в Excel.

Функцията VLOOKUP в Excel | Това е една от най -използваните и популярни функции на excel, която се използва за търсене на стойност от различни диапазони и листове.

COUNTIF в Excel 2016 | Пребройте стойностите с условия, използвайки тази невероятна функция. Не е необходимо да филтрирате данните си, за да преброите конкретна стойност. Функцията Countif е от съществено значение за подготовката на вашето табло.

Как да използвате функцията SUMIF в Excel | Това е друга основна функция на таблото. Това ви помага да обобщите стойностите при конкретни условия.