Händelser i Excel

Termen "Excel-händelse» används för att indikera vissa åtgärder som utförs av användaren i Excel. Till exempel, när en användare byter ett arbetsboksblad är detta en händelse. Att mata in data i en cell eller spara en arbetsbok är också Excel-händelser.

Händelser kan länkas till ett Excel-kalkylblad, till diagram, en arbetsbok eller direkt till själva Excel-applikationen. Programmerare kan skapa VBA-kod som kommer att exekveras automatiskt när en händelse inträffar.

Till exempel, för att köra ett makro varje gång användaren byter ett kalkylblad i en Excel-arbetsbok, skulle du skapa VBA-kod som körs varje gång händelsen inträffar SheetActivate arbetsbok.

Och om du vill att makrot ska köras varje gång du går till ett specifikt kalkylblad (t.ex. Sheet1), måste VBA-koden vara associerad med händelsen Aktivera för detta blad.

VBA-koden som är avsedd att hantera Excel-händelser måste placeras i lämpligt kalkylblad eller arbetsboksobjekt i VBA-redigeringsfönstret (redigeraren kan öppnas genom att klicka på Alt + F11). Till exempel bör kod som ska exekveras varje gång en viss händelse inträffar på kalkylbladsnivå placeras i kodfönstret för det kalkylbladet. Detta visas i figuren:

I Visual Basic-redigeraren kan du se uppsättningen av alla Excel-händelser som är tillgängliga på arbetsbok-, kalkylblads- eller diagramnivå. Öppna kodfönstret för det valda objektet och välj objekttypen från den vänstra rullgardinsmenyn överst i fönstret. Den högra rullgardinsmenyn överst i fönstret visar de händelser som definierats för detta objekt. Bilden nedan visar en lista över händelser som är kopplade till ett Excel-kalkylblad:

Händelser i Excel

Klicka på önskad händelse i den högra rullgardinsmenyn, så infogas en procedur automatiskt i kodfönstret för detta objekt Sub. i spetsen för förfarandet Sub Excel infogar automatiskt de nödvändiga argumenten (om några). Allt som återstår är att lägga till VBA-koden för att bestämma vilka åtgärder proceduren ska utföra när den önskade händelsen upptäcks.

Exempelvis

I följande exempel, varje gång en cell väljs B1 på arbetsbladet Sheet1 en meddelanderuta visas.

För att utföra den här åtgärden måste vi använda kalkylbladshändelsen Selection_Change, vilket inträffar varje gång valet av en cell eller cellområde ändras. Fungera Selection_Change tar emot som argument Målet objektet -. Så här vet vi vilket cellområde som valdes.

händelse Selection_Change inträffar med alla nya val. Men vi behöver att uppsättningen åtgärder endast utförs när cellen är vald B1. För att göra detta spårar vi händelsen endast inom det angivna intervallet Målet. Hur det implementeras i programkoden som visas nedan:

'Kod för att visa en meddelanderuta när cell B1 är vald' på det aktuella kalkylbladet. Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'Kontrollera om cell B1 är vald Om Target.Count = 1 And Target.Row = 1 And Target.Column = 2 Sedan 'Om cell B1 är vald, gör sedan följande MsgBox "Du har valt en cell B1" End If End Sub

Kommentera uppropet