Slik justerer du automatisk kombinasjonsboks eller liste basert på dynamiske dataområder i Excel

Der data lastet ned fra en database overskrider rekkevidden til en kombinasjonsboks, vises de nye elementene ganske enkelt ikke. For å motvirke dette, må området som ligger til grunn for liste- eller kombinasjonsbokser utvides eller trekkes sammen for å matche dataene. Denne artikkelen undersøker hvordan du gjør dette automatisk. 

Det antas at leseren har utviklerbåndet vist og er kjent med VBA Editor. Hvis ikke, vennligst Google "Excel Developer Tab" eller "Excel Code Window".

En profesjonell måte å vise kombinasjonsbokser på er å få utvalget deres utvidet eller redusert etter behov. For eksempel:En profesjonell måte å vise kombinasjonsbokser på

Nøkkelen til et dynamisk område er å overvåke antall fylte rader i den relevante kolonnen ved å bruke funksjonen =countA. Denne funksjonen teller fylte elementer i en sekvens av celler til den treffer den siste; i tilfelle av det første diagrammet i bildet ovenfor, vil det være rad 11.

For å opprettholde en rekkevidde kreves det automatisk definerte navn for å spore antall fylte rader. For eksempel bruker vi eCol (sluttkolonne) og eRow (sluttrad) for å definere grensene for vårt utvalg. Jo flere rader vi fyller ut, desto større blir eRows verdi.Bruk eCol og eRow for å definere grensene for rekkevidde

De definerte navnene ovenfor har satt listen til én kolonne bred (eCol = 1) etter antall fylte rader i eCol (eRow = 11)

Til slutt vises titlene i området "A2:A" og eRow. Du vil merke at indeksfunksjonen brukes til å etablere den siste cellen i området kalt "Titler". Rekkevidden "A2:A" og eRow oversettes effektivt til "A2:A11" på dette stadiet.Indeksfunksjon

Vi kan sette opp det dynamiske området automatisk når arbeidsboken åpnes, ved å bruke underprosedyren Auto_open, som kjører før arbeidsboken blir synlig.

Koden

Åpne en arbeidsbok og fyll den med en kombinasjonsboks og noen data. Eksempelarbeidsboken som ble brukt i denne øvelsen finner du her..

Åpne VBA-kodevinduet og sett inn en modul. Kopier koden nedenfor inn i modulen.

Auto_Open-hendelsen setter opp de siste rad- og siste kolonneverdiene for det dynamiske området "Titler", og noterer påfølgende endringer som er gjort.

Sub auto_open() Dim eRow As Integer, eCol As Integer, i As Long On Error Resume Next 'Tøm de nåværende definerte navnene, for å unngå dupliseringer activeworkbook.Names("eCol").Slett activeworkbook.Names("eRow"). Slett activeworkbook.Names("Titler").Delete Range("A1").Velg 'Titler vil vises i den første kolonnen, A i dette tilfellet eCol = 1 'Finn den siste fylte raden eRow = Sheets("Main"). Cells(Rows.Count, eCol).End(xlUp).Row 'Definer navnene activeworkbook.Names.Add Name:="eCol", RefersTo:="=COUNTA($1:$1)" activeworkbook.Names.Add Name: ="eRow", RefersToR1C1:="=COUNTA(C" & ColNo & ")" activeworkbook.Names.Add Name:="Titler", RefersTo:="=A2:INDEX($2:$200," & "eRow, " & "eCol)" End Sub Sub DropDown1_Change() MsgBox "Directed by " & Cells(2, 5) End Sub

Merk: Alt er plassert på en enkelt side for å forenkle visningen. Vanligvis vil verdiene i kolonnene A & B og D & E være på et annet, muligens skjult, ark. Vær også oppmerksom på at den andre kolonnen, B, ikke brukes i definisjonene av rekkevidden i denne spesielle øvelsen; kolonne Bs verdier oppnås på vanlig måte via kombinasjonsboksens cellelink-egenskap (D2 gjenspeiler valget av det tredje elementet i området, som starts ved A2, kombinert med en indeksfunksjon i "E3" for å finne regissøren ( =INDEKS(B:B,D2+1,1)).Kombinasjonsboksen vil i utgangspunktet fylles med Auto_open

Lagre arbeidsboken, og åpne den på nytt. Kombinasjonsboksen vil i utgangspunktet fylles ut av Auto_open. Legg til elementer i kolonne A og B, og observer endringene i kombinasjonsboksen.

Berging av skadede Excel-filer

Fra tid til annen kan Excel-filer bli ødelagt etter at Excel krasjer uventet. Hvis du har en sikkerhetskopi, kan du ganske enkelt gjenopprette dataene med sikkerhetskopien. Ellers må du kanskje oppsøke en profesjonell ekspert eller verktøy for å gjenopprette korrupte Excel filer.

Forfatterintroduksjon:

Felix Hooker er en datagjenopprettingsekspert innen DataNumen, Inc., som er verdensledende innen datagjenopprettingsteknologier, inkludert rar reparasjon og sql-programvareprodukter. For mer informasjon besøk www.datanumen. Med

Ett svar på "Hvordan automatisk justere kombinasjonsboks eller liste basert på dynamiske dataområder i Excel"

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket *