Hoe ComboBox te gebruiken in VBA Excel-gebruikersformulier?

Inhoudsopgave:

Anonim

Een combobox op een gebruikersformulier is als een vervolgkeuzemenu, dat kan worden gebruikt om een ​​optie te kiezen uit de beschikbare opties. Het is net als de vervolgkeuzelijst die we maken met behulp van gegevensvalidatie op werkbladen.

In de meeste digitale formulieren moet u minstens één keuzelijst hebben gezien. Het kan zijn geweest voor het selecteren van een staat uit een lijst met staten, een cursus uit een lijst met cursussen, een land uit een lijst met landen, enz. In dit artikel zullen we leren hoe u een combobox toevoegt in een VBA-gebruikersformulier, hoe om de combobox te initialiseren met waarden en hoe de waarde uit de combobox kan worden opgehaald.

Een ComboBox toevoegen aan gebruikersformulier

Om een ​​combobox aan een gebruikersformulier toe te voegen, moet u eerst een gebruikersformulier hebben. Da!.

Dus open VBE met CTRL+F11. Klik met de rechtermuisknop op de werkmap, ga naar invoegen en klik op Gebruikersformulier. Je hebt een gebruikersformulier toegevoegd. U kunt hier meer lezen over gebruikersformulieren in VBA.

Kies nu uit de toolbox combobox. Het is de vierde optie op de bovenste rij. Als u de gereedschapskist niet kunt zien. Ga in het menu naar Beeld, klik op Toolbox. De gereedschapskist verschijnt.

Ik heb een label met staten toegevoegd omdat deze combobox een lijst met enkele staten en een verzendknop zal bevatten om het formulier in te dienen.

Hoe initialiseer ik een combobox in userform?

Dit is het deel waar de meeste mensen fouten maken. Soms schrijven studenten de code voor het laden van waarden in combobox en verzenden ze vervolgens de knoppen. En wanneer ze het gebruikersformulier laden, toont de combobox geen waarden.

Om de combobox te laden, moet u de code schrijven voordat u het gebruikersformulier laadt. Dit kan in de module, c of de knop waar je het formulier laadt. De code om de combobox-lijst te laden, moet vóór de opdracht formname.show komen.

Combobox laden in UserForm Calling Subroutine

Laten we zeggen dat ik een array hard wil coderen in de combobox van de staat. Dus ik zal een subroutine schrijven die het gebruikersformulier zal laden om informatie in te vullen. Zie onderstaande code.

Sub load_userform() staten = Array("Delhi", "UP", "UK", "Gujrat", "Kashmir") UserForm1.ComboBox1.List = staten UserForm1.Show End Sub 

Ik definieer een array "states" die een paar namen van Indiase staten bevat. Nu gebruik ik de gebruikersnaam om toegang te krijgen tot combobox, aangezien combobox een onderdeel is van userform.

De naam van mijn gebruikersformulier is userform1. En de naam van combobox is combobox1. Dit zijn standaardnamen. U kunt ze wijzigen vanuit het eigenschappenvenster.

Vervolgens initialiseer ik de lijsteigenschap van de combobox met staten.

En dan laat ik de userform1 zien met behulp van de show opdracht.

Wanneer u de bovenstaande code uitvoert, heeft de combobox alle vermelde statussen.

Combobox initialiseren met behulp van gebeurtenis UserForm_Initialize().

Een andere methode om combobox-componenten op userform te laden, is het gebruik van userform-gebeurtenis Initialize. Deze gebeurtenis wordt uitgevoerd voordat het gebruikersformulier wordt geladen. Alles wat u wilt doen voordat het gebruikersformulier wordt geladen, kunt u hier doen. Een van die dingen is het laden van combobox-elementen.

Dubbelklik dus op het gebruikersformulier om het coderingsgebied in het gebruikersformulierobject te openen. Selecteer nu in het linker vervolgkeuzemenu gebruikersformulier. Selecteer vervolgens in het rechter vervolgkeuzemenu initialiseren.

Er wordt een lege subnaam UserForm_Initialize() ingevoegd. Alles wat in deze sub wordt geschreven, wordt uitgevoerd voordat het gebruikersformulier verschijnt.

Dus we schrijven hier de initialisatiecode voor combobox.

Private Sub UserForm_Initialize() staten = Array("Delhi", "UP", "UK", "Gujrat", "Kashmir") UserForm1.ComboBox1.List = staten End Sub 

Merk op dat we hier geen userform1.show-opdracht hebben. Het zit nog steeds in die module. Die sub wordt gebruikt om ons gebruikersformulier op het scherm te krijgen.

Sub load_userform() UserForm1.Show End Sub 

Dus gebruikers zullen load_userform sub uitvoeren met behulp van een opdracht, knop of macro toegewezen element. Terwijl de compiler de code userform1.show opdracht uitvoert, wordt onmiddellijk de gebeurtenis useforma_initialize() uitgevoerd. Daarna toont het het gebruikersformulier aan gebruikers.

Opmerkingen:

Als u de code schrijft om combobox te initialiseren met waarden in opdracht button1 click, zal combobox niets tonen.

Om de combobox met waarden te initialiseren, laadt u deze in ieder geval voordat de gebruiker de combobox bereikt om te vullen.

Waarde ophalen uit ComboBox

Dus gebruiken we formulieren om wat informatie te krijgen. En om die informatie te gebruiken, moeten we ze ophalen. Om enige waarde uit de combobox van het gebruikersformulier te halen, gebruiken we de eigenschap combobox.value. Over het algemeen halen we de waarden op uit formulierelementen zodra de gebruiker het formulier heeft ingevuld en het formulier heeft verzonden met behulp van de verzendknop. Dus we kunnen de commandbutton_click-gebeurtenis gebruiken. Dus voeg een opdrachtknop in en schrijf er 'verzenden' op, als je die nog niet hebt. Dubbelklik er nu op en u bevindt zich in de commandButton_click-gebeurtenis.

Maak nu een variabele om de waarde op te slaan. Bewaar het op een blad als je wilt. Sluit ten slotte het formulier af met de opdracht Unload Me. Zoals weergegeven in de onderstaande code.

Private Sub CommandButton1_Click() State = ComboBox1.Value ThisWorkbook.Worksheets("sheet1").Range("A1") = State Unload Me End Sub 

Dus ja jongens, dit is hoe je combobox gebruikt in VBA-gebruikersformulieren. Ik hoop dat ik verhelderend en to the point was. Als je vragen hebt over dit onderwerp of andere VBA-gerelateerde vragen, stel ze dan in het commentaargedeelte hieronder.

Aan de slag met Excel VBA UserForms| Ik zal uitleggen hoe je een formulier in Excel maakt, hoe je de VBA-toolbox gebruikt, hoe je met gebruikersinvoer omgaat en tot slot hoe je de gebruikersinvoer opslaat. We zullen deze onderwerpen doornemen aan de hand van een voorbeeld en een stapsgewijze handleiding.

VBA-variabelen in Excel| VBA staat voor Visual Basic for Applications. Het is een programmeertaal van Microsoft. Het wordt gebruikt met Microsoft Office-toepassingen zoals MSExcel, MS-Word en MS-Access, terwijl VBA-variabelen specifieke trefwoorden zijn.

Excel VBA-variabel bereik| In alle programmeertalen hebben we variabele toegangsspecificaties die definiëren van waaruit toegang tot een gedefinieerde variabele kan worden verkregen. Excel VBA is geen uitzondering. VBA heeft ook scope-specificaties.

ByRef en ByVal-argumenten | Wanneer een argument als ByRef-argument wordt doorgegeven aan een andere sub of functie, wordt de referentie van de werkelijke variabele verzonden. Alle wijzigingen die in de kopie van de variabele zijn aangebracht, worden weerspiegeld in het oorspronkelijke argument.

Bladen verwijderen zonder bevestigingsvragen met VBA in Microsoft Excel | Aangezien u bladen verwijdert met VBA, weet u wat u doet. U wilt Excel vertellen deze waarschuwing niet te tonen en dat verdomde blad te verwijderen.

Nieuwe werkmap toevoegen en opslaan met VBA in Microsoft Excel 2016| In deze code hebben we eerst een verwijzing naar een werkmapobject gemaakt. En toen hebben we het geïnitialiseerd met een nieuw werkmapobject. Het voordeel van deze aanpak is dat u eenvoudig bewerkingen op deze nieuwe werkmap kunt uitvoeren. Zoals opslaan, sluiten, verwijderen, etc

Geef een bericht weer op de Excel VBA-statusbalk| De statusbalk in Excel kan worden gebruikt als codemonitor. Wanneer uw VBA-code lang is en u verschillende taken uitvoert met VBA, schakelt u vaak de schermupdate uit zodat u dat scherm niet ziet flikkeren.

Schakel waarschuwingsberichten uit met VBA in Microsoft Excel 2016| Deze code schakelt niet alleen VBA-waarschuwingen uit, maar verhoogt ook de tijdefficiëntie van de code. Laten we eens kijken hoe.

Populaire artikels:

50 Excel-snelkoppelingen om uw productiviteit te verhogen | Word sneller in uw taak. Met deze 50 sneltoetsen werk je nog sneller in Excel.

De VERT.ZOEKEN-functie in Excel | Dit is een van de meest gebruikte en populaire functies van Excel die wordt gebruikt om waarde op te zoeken uit verschillende bereiken en bladen.

AANTAL.ALS in Excel 2016 | Tel waarden met voorwaarden met behulp van deze geweldige functie. U hoeft uw gegevens niet te filteren om specifieke waarden te tellen. Countif-functie is essentieel om uw dashboard voor te bereiden.

Hoe de SUMIF-functie in Excel te gebruiken? | Dit is een andere essentiële functie van het dashboard. Dit helpt u bij het optellen van waarden voor specifieke voorwaarden.