Hvis du vil lage et dashbord med et diagram som endrer dataene i henhold til de valgte alternativene, kan du bruke hendelsene i VBA. Ja, det kan gjøres. Vi trenger ikke noen rullegardin-, skive- eller kombinasjonsboks. Vi vil gjøre cellene klikkbare og endre data for å lage et diagram fra den valgte cellen.
Følg trinnene nedenfor for å lage dynamiske diagrammer i excel som endres i henhold til cellevalget.
Trinn 1: Forbered dataene i et ark som en kilde for diagrammet.
Her har jeg noen eksempeldata fra forskjellige regioner i et ark. Jeg kalte det kildedata.
Trinn 2: Få en regions data om gangen på et annet ark.
- Sett nå inn et nytt ark. Gi det et passende navn. Jeg kalte det "Dashboard".
- Kopier alle månedene i en kolonne. Skriv navnet på en region ved siden av måneden.
- Nå ønsker vi å hente data fra regionen i celle D1. Vi vil at dataene skal endres etter hvert som regionen endres i D1. For det kan vi bruke toveisoppslag.
Siden kildedataene mine er i A2: D8 på kildedatabladet. Jeg bruker formelen nedenfor.
=VLOOKUP(C2, 'Kildedata'! $ A $ 2: $ D $ 8,KAMP($ D $ 1, 'Kildedata'! $ A $ 1: $ D $ 1,0)) |
Her bruker vi dynamisk kolonneindeksering for VLOOKUP. Du kan lese om det her.
- Sett inn et diagram ved hjelp av disse dataene på oversikten. Jeg bruker et enkelt linjediagram. Skjul kilden til diagrammet hvis du ikke vil vise dem.
Når du endrer regionnavnet i D1, vil diagrammet endres tilsvarende. Det neste trinnet er å endre regionnavnet i D1 når du velger et alternativ fra den angitte cellen.
Trinn 3: Endre regionen mens du velger et regionnavn i det angitte området.
- Skriv alle regionens navn i et område, jeg skriver dem i område A2: A4.
- Høyreklikk på navnet på dashbordarket og klikk på "Vis kode" -alternativet for å gå direkte inn i regnearkmodulen i VBE, slik at vi kan bruke regnearkhendelsen.
- Skriv nå koden nedenfor i VB Editor.
Private Sub Worksheet_SelectionChange (ByVal Target As Range) If Not Intersect (Target, Range ("A2: A4")) Is Nothing Then Range ("A2: A4"). Interior.ColorIndex = xlColorIndexNone Dim region As Variant region = Target.value Ved feil GoTo err: Velg Case region Case Is = "Central" Range ("D1"). Value = region Case Is = "East" Range ("D1"). Value = region Case Is = "West" Range ("D1 ") .value = region Case Else MsgBox" Ugyldig alternativ "End Velg Target.Interior.ColorIndex = 8 End Hvis err: End Sub
Og det er gjort. Når du nå velger en celle i område A2: A4, blir verdien tilordnet D1 og dataene i diagrammet vil endres tilsvarende.
Jeg har forklart hvordan denne koden fungerer nedenfor. Du kan forstå det og gjøre endringer i henhold til dine krav. Jeg har gitt lenker til hjelpeemner som jeg har brukt her i dette eksemplet. Så sjekk dem ut.
Hvordan fungerer koden?
Her har jeg brukt Event of Excel. Jeg brukte en regnearkhendelse "SelectionChange" for å utløse hendelsene.
Hvis ikke krysser (mål, rekkevidde ("A2: A4")) er ingenting da
Denne linjen setter fokus til området A2: A4 slik at SelectionChange -hendelsen bare utløses når valget er i område A2: A4. Koden mellom If og End vil bare kjøre hvis valget er i område A2: A4. Du kan nå angi det i henhold til kravet ditt for å gjøre diagrammet ditt dynamisk.
Område ("A2: A4"). Interior.ColorIndex = xlColorIndexNone
Denne linjen setter fargen i område A2: A4 til ingenting.
region = Target.value Ved feil GoTo err:
I de to linjene ovenfor får vi verdien av de valgte cellene i det variable området og ignorerer eventuelle feil som oppstår. ikke bruk linjen "On Error GoTo err:" før du er sikker på at du vil ignorere eventuelle feil som oppstår. Jeg brukte den for å unngå en feil når jeg valgte flere celler.
Velg Case region Case Is = "Central" Range ("D1"). Value = region Case Is = "East" Range ("D1"). Value = region Case Is = "West" Range ("D1"). Value = region Case Else MsgBox "Ugyldig alternativ" Slutt Velg
I linjene ovenfor bruker vi excels Select Case Statement for å angi verdien av område D1.
Target.Interior.ColorIndex = 8 Slutt Hvis feil: Slutt Sub
Før End If -setningen endrer vi fargen på det valgte alternativet slik at det blir uthevet. Deretter slutter If -setningen og err: tag starter. On Error -setningen hopper til denne taggen hvis det oppstår en feil under select -setningen.
Last ned arbeidsfilen nedenfor.
Innebygde diagramhendelser ved hjelp av VBA i Microsoft Excel| De innebygde diagramhendelsene kan gjøre diagrammet ditt mer interaktivt, dynamisk og nyttig enn vanlige diagrammer. For å aktivere hendelsene på diagrammer …
Hendelsene i Excel VBA |Det er syv typer hendelser i Excel. Hver hendelse avhenger i forskjellige omfang. Application Event omhandler på arbeidsboknivå. Arbeidsbok på arknivå. Arbeidsarkhendelse på områdenivå.
Regnearket Hendelser i Excel VBA| Regnearkhendelsen er veldig nyttig når du vil at makroene skal kjøres når en spesifisert hendelse oppstår på arket.
Arbeidsbokhendelser ved bruk av VBA i Microsoft Excel | Arbeidsbokhendelsene fungerer på hele arbeidsboken. Siden alle arkene er en del av arbeidsboken, fungerer disse hendelsene også på dem.
Forhindre at en automacro/eventmacro kjøres ved hjelp av VBA i Microsoft Excel| For å forhindre kjøring av auto_open -makroen, bruk skift -tasten.
Kartlegg objekthendelser ved hjelp av VBA i Microsoft Excel| Diagrammene er komplekse objekter, og det er flere komponenter du har festet dem til. For å lage diagramhendelsene bruker vi klassemodulen.
Populære artikler:
50 Excel -snarveier for å øke produktiviteten | Bli raskere på oppgaven din. Disse 50 snarveiene vil gjøre arbeidet ditt enda raskere i Excel.
VLOOKUP -funksjonen i Excel | Dette er en av de mest brukte og populære funksjonene til excel som brukes til å slå opp verdi fra forskjellige områder og ark.
COUNTIF i Excel 2016 | Tell verdier med betingelser ved hjelp av denne fantastiske funksjonen. Du trenger ikke å filtrere dataene dine for å telle spesifikk verdi. Countif -funksjonen er avgjørende for å forberede dashbordet.
Slik bruker du SUMIF -funksjonen i Excel | Dette er en annen viktig funksjon på dashbordet. Dette hjelper deg med å oppsummere verdier på spesifikke forhold.