Gebeurtenisse in Excel

Die term "Excel gebeurtenis» word gebruik om sekere handelinge aan te dui wat deur die gebruiker in Excel uitgevoer word. Byvoorbeeld, wanneer 'n gebruiker 'n werkboekvel verander, is dit 'n gebeurtenis. Die invoer van data in 'n sel of die stoor van 'n werkboek is ook Excel-gebeure.

Gebeurtenisse kan gekoppel word aan 'n Excel-werkblad, aan grafieke, 'n werkboek, of direk aan die Excel-toepassing self. Programmeerders kan VBA-kode skep wat outomaties uitgevoer sal word wanneer 'n gebeurtenis plaasvind.

Byvoorbeeld, om 'n makro te laat loop elke keer as die gebruiker 'n werkblad in 'n Excel-werkboek verander, sal jy VBA-kode skep wat sal loop elke keer as die gebeurtenis plaasvind Bladaktiveer werkboek.

En as jy wil hê dat die makro moet loop elke keer as jy na 'n spesifieke werkblad gaan (byvoorbeeld, Sheet1), dan moet die VBA-kode met die gebeurtenis geassosieer word Aktiveer vir hierdie blad.

Die VBA-kode wat bedoel is om Excel-gebeurtenisse te hanteer, moet in die toepaslike werkblad of werkboekvoorwerp in die VBA-redigeerdervenster geplaas word (die redigeerder kan oopgemaak word deur te klik Alt + F11). Byvoorbeeld, kode wat uitgevoer moet word elke keer as 'n sekere gebeurtenis op die werkbladvlak plaasvind, moet in die kodevenster vir daardie werkblad geplaas word. Dit word in die figuur getoon:

In die Visual Basic-redigeerder kan jy die stel van alle Excel-gebeure wat op die werkboek-, werkblad- of grafiekvlak beskikbaar is, sien. Maak die kodevenster vir die geselekteerde objek oop en kies die objektipe uit die linker aftrekkieslys bo-aan die venster. Die regte keuselys boaan die venster sal die gebeure wys wat vir hierdie voorwerp gedefinieer is. Die onderstaande figuur toon 'n lys van gebeure wat met 'n Excel-werkblad geassosieer word:

Gebeurtenisse in Excel

Klik op die gewenste gebeurtenis in die regte aftreklys, en 'n prosedure sal outomaties in die kodevenster vir hierdie voorwerp ingevoeg word sub. aan die hoof van die prosedure sub Excel voeg outomaties die vereiste argumente (indien enige) in. Al wat oorbly is om die VBA-kode by te voeg om te bepaal watter aksies die prosedure moet uitvoer wanneer die gewenste gebeurtenis opgespoor word.

voorbeeld

In die volgende voorbeeld, elke keer as 'n sel gekies word B1 op die werkblad Sheet1 'n boodskapkassie verskyn.

Om hierdie aksie uit te voer, moet ons die werkbladgebeurtenis gebruik Seleksie_Verander, wat plaasvind elke keer as die seleksie van 'n sel of reeks selle verander. Funksie Seleksie_Verander as argument ontvang Doel voorwerp -. Dit is hoe ons weet watter reeks selle gekies is.

Event Seleksie_Verander vind plaas met enige nuwe seleksie. Maar ons het nodig dat die stel aksies slegs uitgevoer word wanneer die sel gekies is B1. Om dit te doen, sal ons die gebeurtenis slegs in die gespesifiseerde reeks opspoor Doel. Hoe dit geïmplementeer word in die programkode wat hieronder getoon word:

'Kode om 'n boodskapkas te vertoon wanneer sel B1 gekies is' op die huidige werkblad. Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'Kyk of sel B1 gekies is As Target.Count = 1 And Target.Row = 1 And Target.Column = 2 Dan 'As sel B1 gekies is, doen dan die volgende MsgBox "Jy het 'n sel B1" End If End Sub gekies

Lewer Kommentaar