Komme i gang med Excel VBA UserForms

Anonim


I denne artikkelen vil du lære det grunnleggende om VBA -brukerformer. Jeg vil forklare hvordan du lager et skjema i excel, hvordan du bruker VBA -verktøykasse, hvordan du håndterer brukerinnganger og til slutt hvordan du lagrer brukerinngangene. Vi vil gå gjennom disse emnene ved å bruke ett eksempel og en trinnvis veiledning. Hvis du leser dette, antar jeg at du kjenner det grunnleggende i Excel VBA.
Uten ytterligere forsinkelse, la oss komme i gang.
Lag et skjema for investering i Excel og butikkoppføring
Vi starter med å designe brukerskjemaet. I denne brukerformen vil vi ha en tekstboks for navn, en for alder, en for investeringsbeløp og et par radioknapper for kjønn. La oss starte det.

Design brukerformen

  • Åpne den visuelle grunnleggende editoren i excel ved hjelp av ALT+F11 -snarveien. Høyreklikk på i Project Box VBAProsjekt(filen din). I sett inn alternativet, velg UserForm.
  • Umiddelbart vil en ny mappe bli opprettet og brukerskjemaet ditt vil bli funnet. All brukerform for dette prosjektet vil bli lagt til i denne mappen.
  • Endre navnet på skjemaet til InvestmentForm i eiendomsboks.
  • Egenskapsboksen vises nederst til venstre i prosjektutforskeren. Hvis du ikke kan se det, gå til visning og klikk på Egenskaper -vinduet. Vi kommer til å bruke det mye, så sørg for at det er der. Den brukes til styling, navngivning og tilpasning av skjemaer.

  • Legg til elementer i skjemaet: I bildet ovenfor har jeg allerede lagt til elementer (etiketter, tekstboks, kommandoknapp). Et nytt brukerskjema er imidlertid helt tomt. Du må bruke verktøykasse for å legge til elementer i skjemaet. Hvis du ikke kan se verktøykassen, får du den fra utsikt kategorien.

  • Legg til etiketter ved hjelp av verktøykasse for beskrivende navn. Legg til tekstboks for brukerinnganger.

    Legg til to alternativknapper og navngi dem Mann og Kvinne.

    Jeg har brukt en ramme for å kapsle dem inn, men det er ikke nødvendig.

    Legg til kommandoknapper sende inn og Avbryt å utføre operasjon på gitt inngang.

  • Navnelementer: Tekstboksen, etikettene, knappene osv. Er alle elementer. Og for å bruke dem i VBA -kode må vi gi dem navn. Vi bruker eiendomsvinduet til å endre navn.
  • Velg elementet. Her velger jeg tekstboksen for navn. Gå til eiendomsvinduet og endre navnet til "NameBox”. Gjør det samme for hvert element du skal bruke. (du trenger ikke navngi etiketter, med mindre du vil at de skal være klikkbare.)


Jeg har omdøpt elementet til tabellen nedenfor, og jeg vil bruke disse navnene til å referere til dem. Du kan ha forskjellige navn. Bare bytt ut disse navnene med navnet ditt. Dette er VBA -navn (kodenavn) som skal brukes i kode. De vil ikke gjenspeiles i form.
Teksten du kan se på etiketter og knapper er "Bildetekster". Navnet og bildeteksten til elementet kan være det samme, hvis du vil.

Element Gi nytt navn
Navn Tekstboks NameBox
Alders tekstboks AgeBox
Mannlig alternativknapp Male Alternativ
Knapp for kvinner FemaleOption
Investeringstekstboks InvestBox
Send inn kommandoknapp Send inn -knapp
Avbryt kommandoknappen Avbryt -knapp
  • Vis brukerskjema for bruker: Nå er skjemaet klart, la oss vise det for brukeren. Men vent, hvordan gjør jeg det. Det er ikke noe alternativ i regnearket for å ringe brukerskjema.
  • Egentlig trenger brukerskjema utløser. Det kan ikke vises av seg selv. Du kan bruke, en kommandoknapp, en underrutine eller en hendelse for å få skjema til å dukke opp på skjermen.

    Her skal jeg bruke en kommandoknapp for å utløse brukerskjema.

    • Gå til kategorien utviklere på et regneark? Sett inn? Knapp (skjemakontroll). Gi nytt navn til det åpne skjemaet.
    • Høyreklikk på den. Klikk på tilordne makro og klikk deretter på ny.

  • En sub vil bli opprettet umiddelbart. Legg nå til denne linjen i den suben.
Sub Open_Form () 'Åpningsskjema InvestmentForm.Show End Sub 

Det er gjort. Gå tilbake til det arket og klikk på knappen. Brukerskjemaet vil dukke opp.

  • Fyll ut arket ved hjelp av VBA -brukerskjema: Da vi klikket på kommandoknappen (åpent skjema) dukker skjemaet opp. Nå kan du fylle ut skjemaet. Men når vi klikker på send -knappen, skulle data ha blitt lagt inn på dette arket, men ingenting skjer.

Fordi vi ikke har skrevet noen vba -instruksjoner for det. Vi må lagre brukerskjemadata i arket.

  • Gå tilbake til VBA og dobbeltklikk på Sende inn knapp. En ny sub blir opprettet automatisk. Denne suben er innebygd i skjemaet, og du kan ikke finne den i noen modul. Dette er det samme for hvert element i formen.
  • Skriv denne vba -koden i den suben.
 Private SubmitButton_Click () Sheet1.Activate 'get first empty row on sheet (read about it here) lstrow = Cells (Rows.Count, 1). End (xlUp) .Row Set firstEmptyRow = Range ("A" & lstrow + 1 ) 'initialiser hver celle med data firstEmptyRow.Offset (0, 0) .Value = nameBox.Value' første celle firstEmptyRow.Offset (0, 1) .Value = AgeBox.Value 'første celle til høyre firstEmptyRow.Offset (0, 3) .Value = InvestBox.Value 'tredje celle til høyre' kontrollknapp Hvis MaleOption.Value = True Then FirstEmptyRow.Offset (0, 2) .Value = "Male" 'andre celle til høyre Else firstEmptyRow.Offset ( 0, 2) .Value = "Female" 'andre celle til høyre End If' Closing form Unload Me End Sub 

Ovennevnte kodebit av VBA -koden kjøres når du klikker på send -knappen. Den finner den første tomme raden på arket og fyller den med verdier i form. Og til slutt lukker det skjemaet ved å bruke kommandoen "Unload Me".

  • Bruk kommandoen Avbryt for å lukke skjemaet. For nå er avbryt -knappen ubrukelig. Det gjør ingenting. Hvis du vil avbryte inngangen, kan du bruke avbryt -knappen. I så fall:

Dobbeltklikk på knappen Avbryt kommando i VBA -editor. En ny sub vil bli opprettet. Bare skriv denne kodelinjen for å lukke brukerskjemaet.

 Private Sub CancelButton_Click () 'Avsluttingsskjema Unload Me End Sub 

Til slutt vil skjemakoden se slik ut.

Og det er det. Slik bruker du excel vba brukerform for å få innspill fra brukere. I denne artikkelen utforsket vi bare den grunnleggende bruken av brukerform, slik at du blir kjent med den. Det er enkelt, hvis du har kunnskap om grunnleggende vba.

I fremtidige artikler vil vi utforske mer avanserte funksjoner for vba -brukerformer i Excel. Vi vil opprette brukerform i excel for å gjøre mye mer. Vi vil utforske forskjellige verktøy og elementer som er tilgjengelige for vba brukerform. Inntil da øve dette. Du kan laste ned denne filen som referanse hvis du vil.
Så ja gutta, dette var en liten og enkel brukerformopplæring. Jeg håper det var ressurssterk. Gi meg beskjed hvis du er i tvil om dette, gi meg beskjed i kommentarfeltet nedenfor.
relaterte artikler

Endre verdien/innholdet i flere UserForm-kontroller ved hjelp av VBA i Excel

Forhindre at et brukerskjema lukkes når brukeren klikker på x-knappen ved å bruke VBA i Excel

Returner cellene det refereres til av bruker ved hjelp av RefEdit -kontroll av brukerform i Excel
Populære artikler:
VLOOKUP -funksjonen i Excel

COUNTIF i Excel 2016

Slik bruker du SUMIF -funksjonen i Excel