Excel-brukerskjemaer - Excel-tips

Innholdsfortegnelse
Excel 97 introduserte nye brukerskjemaer. Lær meg hvordan jeg oppretter og bruker en listeboks på engelsk.

MrExcel fullførte nylig en tilpasset applikasjon for en av våre lesere. I denne Excel-appen vil brukeren legge inn 150 datapunkter for et spesifikt delenummer på arket.

1. Ved å klikke på en knapp blir dette delenummeret og de tilhørende dataverdiene forpliktet til en database på Sheet2. Dette var greit, men da trengte vi en måte for brukeren å hente opp en plate fra ark 2 slik at de kunne se gjennom oppføringene. Jeg ønsket å la brukeren åpne et skjema med en rullegardinrute som viser alle elementene på arket

2. Brukeren kunne bla gjennom, velge et element, og så ville jeg trekke disse verdiene fra ark 2 opp til ark 1.

Som mange av dere begynte jeg å skrive Excel-makroer i Excel 5.0. Hele denne makroeditoren i Excel 97 er litt skremmende. For denne ukens tips vil jeg vise deg trinn for trinn hvordan du lager listeruten for dette prosjektet. Fokuset denne uken er bare på kombinasjonsboksen. Målgruppen er noen som kjenner det grunnleggende i Excel-makroer, men som aldri har brukt et skjema for å samhandle med en makro.

Første trinn: Jeg endret de eksisterende makroene slik at når de la til en post i ark2, ville makroen gi navnet til området som inneholder delenumrene som skal kalles "PartList". Det er en overskrift i celle A1, med det første elementet i celle A2. Jeg brukte End-kommandoen for å finne den siste raden:

LastRow = Range("A6000").End(xlUp).Row ActiveWorkbook.Names.Add Name:="PartList", RefersTo:="=Sheet2!$A$2:$A$" & LastRow

Andre trinn: Oppsett skjemaet for listeboksen. Følg disse trinnene:

  • Start Visual Basic Editor ved å trykke på alt-F11
  • Fra menyen velger du Sett inn> Brukerskjema. Redaktøren skal gi deg en blank UserForm1.
  • Hvis du ikke ser Properties-UserForm1-boksen i nedre venstre hjørne, trykker du på "Properties Properties" -ikonet - det ser ut som en hånd med en finger som peker mot et hvitt ark.
  • Den fjerde oppføringen i eiendomsvinduet er bildetekst. Akkurat nå vil bildeteksten være UserForm1. Klikk i boksen til høyre for Caption i vinduet Egenskaper og skriv inn en ny tittel for skjemaet. Jeg kalte min "Velg et delenummer å gjennomgå". Jeg la alle de andre egenskapene for skjemaet i standardtilstand.
    Opprette listeboks ved hjelp av brukerskjema
  • Klikk hvor som helst i brukerskjemaet igjen, så vises Kontrollverktøyboks.
  • I boksen Kontroller velger du bokstaven A. Klikk og dra for å opprette en etikettboks øverst i skjemaet. Det er standard å ha bildetekst av Label1. Klikk inne i tekstboksen igjen, og du kan redigere bildeteksten. Sett instruksjoner til brukeren her: "Velg et element fra listen nedenfor og klikk OK for å se gjennom verdiene".
  • Klikk på skjemaet, men utenfor etikettboksen, og du vil se kontrollverktøykassen igjen. Det fjerde elementet i øverste rad er et kombinasjonsboksværktøy. Klikk på dette og dra inn brukerskjemaet for å lage en kombinasjonsboks. Det er her listen over delenumre vises. Standardnavnet er ComboBox1.
    Kombinasjonsbokseegenskaper
  • Egenskapsvinduet viser nå egenskapene til ComboBox1. Rull ned gjennom egenskapene til du ser RowSource-egenskapen. For egenskapen RowSource, skriv = Sheet2! PartList
  • Du kan nå kjøre en rask test for å sikre at ting fungerer som de skal. Klikk på tittellinjen i brukerskjemaet for å velge hele skjemaet. Klikk nå på "play" -ikonet (det ser ut som avspillingsknappen på videospilleren). Du vil bli returnert til Excel-arbeidsboken og ha vårt enkle brukerskjema. Hvis du klikker på rullegardinmenyen for delenummer, bør du se en liste over gyldige delenumre. Velg en, og den blir værende i kombinasjonsboksen. Så langt ikke for spennende. Klikk på det lille X øverst i høyre hjørne for å avvise boksen.
  • Gå tilbake til Visual Basic-redigereren. Klikk på brukerskjemaet for å vise kontrollverktøykassen. Klikk på CommandButton-verktøyet og tegn en knapp. Endre bildeteksten til å være OK ved å bruke vinduet Egenskaper - CommandButton1.
  • Tegn en ny knapp og merk den Avbryt.
  • Vi er nesten ferdige. La oss knytte litt kode til Avbryt-knappen. Høyreklikk på Avbryt-knappen og velg "Vis kode". Redaktøren vil sette opp Sub- og End Sub-uttalelser. Mellom dem skriver du inn en linje med kode:
    UserForm1.Hide
  • Ja, det er alt det er å tildele kode til en knapp. For å komme tilbake til brukerskjemaet, dobbeltklikk ordene UserForm1 i prosjektvinduet. (Ser du ikke prosjektvinduet? Trykk på Project Explorer-ikonet, bare til venstre for Egenskaper-ikonet.)
  • For å fullføre brukerform 1, la oss gjøre noe med OK-knappen. Når brukeren klikker OK, vil jeg at verdien fra listeboksen skal vises i ark1 celle A2, og deretter vil jeg starte en makro jeg tidligere hadde skrevet, kalt ReviewItem. Høyreklikk på OK-knappen og velg Vis kode. Skriv inn denne koden for Private Sub CommandButton1_Click ():
    Worksheets("Sheet1").Range("A2") = UserForm1.ComboBox1.Value UserForm1.Hide ReviewItem

Gratulerer! Du er ferdig med ditt første brukerskjema. For å få skjemaet til å vises, kjør en makro som har denne linjen:

UserForm1.Show

Skjemaet vil se ut slik:

Ferdig brukerform

Interessante artikler...