Populere en brukerform-kombinasjonsboks i Excel med en dynamisk liste
Å befolke en brukerform-kombinasjonsboks med en statisk liste krever litt kunnskap og litt VBA-kode. Å få kombinasjonsboksen til å oppdatere når listen oppdateres, krever litt mer arbeid. Du kan oppdatere listeområdet hver gang du oppdaterer det, eller du kan opprette en dynamisk liste. Med dynamisk liste, mener jeg virkelig et dynamisk område som inneholder en liste over dataelementer.
La oss se på et raskt eksempel. Følgende brukerform inneholder en kombinasjonsboks med en identifiserende etikett. Du vil fylle ut kombinasjonsboksen ved å bruke listen i A1: A6 (på et ark som heter LookupLists, som ikke vises på figuren).

- Klikk på fanen Formler og klikk deretter Definer navn i gruppen Definerte navn for å åpne dialogboksen Nytt navn. I Excel 2003 velger du Navn fra Sett inn-menyen og velger deretter Definer.
- Skriv inn et navn for området, ColorList.
- I Refers To-kontrollen skriver du inn følgende uttrykk: = OFFSET (LookupLists! $ A $ 2, 0, 0, COUNTA (LookupLists! $ A: $ A) -1, 1). Oppslagslister er navnet på arket som inneholder listen over farger.
- Klikk OK.
- Åpne Visual Basic Editor (VBE) ved å trykke på Alt + F11.
- Velg UserForm fra Sett inn-menyen.
- Bruk verktøykassen for å sette inn en kombinasjonsbokskontroll. Verktøykassen skal være synlig når du velger brukerform. Velg om nødvendig Toolbox fra Vis-menyen.
- Jeg la til en etikettkontroll og skrev inn teksten Color . Du kan hoppe over dette trinnet hvis du vil.
- Navn på kombinasjonsboksen kontroll cboColor.
- Dobbeltklikk på brukerformen for å åpne modulen.
- Gå inn underprosedyren vist nedenfor:
Privat underbrukerForm_Initialiser ()For å se hvordan kombinasjonsboksen fungerer, går du tilbake til brukerformen (lukk modulen) og kjører den ved å klikke på F5. For hver setning inneholder listen listen med dataelementene i området ColorList. Lukk brukerformen.'Populasjonsfarge-kombinasjonsboksen.
Dim rngColor As Range
Dim ws As regneark
Sett ws = Worksheets ("LookupLists")
For hver rngColor In ws.Range ("ColorList")
Me.cboColor.AddItem rngColor.Value
Neste rngColor
Slutt sub

