VBA InputBox - Krijg invoer van een gebruiker in een macro - VBA-codevoorbeelden

Deze zelfstudie laat zien hoe u invoer van een gebruiker kunt krijgen met de VBA-invoerbox.

De VBA-invoervak stelt ons in staat om de gebruiker te vragen informatie in te voeren. De informatie kan vervolgens worden gebruikt in onze VBA-code of in een Excel-werkblad.

Het VBA-invoervak ​​met een variabele

We kunnen een variabele declareren in onze VBA-code die vervolgens de informatie opslaat die in de Input Box is getypt. We kunnen deze variabele dan gebruiken in onze code.

Afhankelijk van het type informatie dat we uit het invoervak ​​willen retourneren, kunnen we een specifiek type variabele declareren om ofwel tekst te retourneren (een string of variantvariabele) of om een ​​getal te retourneren (een geheel getal, lange, dubbele of enkele variabele).

De stringvariabele met een invoervak

Hier ziet u hoe u een InputBox kunt maken waarin de gegevens worden geretourneerd in een tekenreeksvariabele.

123 Dim strInvoer als tekenreeksstrInput = InputBox ("Dit is mijn InputBox", "MyInputTitle", "Voer HIER uw invoertekst in")

Merk op dat we eerst een variabele declareren. Aan deze variabele wordt de waarde toegewezen die de gebruiker invoert. We hebben string van het variabele type gebruikt om ervoor te zorgen dat het invoervak ​​tekstreeksen accepteert (die alfanumerieke tekens bevatten).

De nummervariabele met een invoervak

Als u een getalvariabele declareert, hoeft u alleen een getal in het invoervak ​​in te voeren.

12 Dim iInput als geheel getaliInput = InputBox ("Voer een nummer in", "Maak factuurnummer", 1)

Eerst declareren we de getalvariabele als een integer-variabele. We kunnen dan ook een standaardwaarde van 1 in het invoerveld zetten.

Als we een string zouden invoeren in plaats van een getal en dan op OK zouden klikken, zouden we een Type Mismatch Error krijgen omdat een getalvariabele geen string accepteert.

Input krijgen van een gebruiker

Hier is nog een voorbeeld waarin de meest populaire functies van een InputBox worden gebruikt.

De volgende code doet drie dingen:

1. Vraagt ​​om invoer met een InputBox en wijst deze toe aan een variabele

2. Controleert invoer, anders verlaat de sub

3. Retourneert de invoer in een berichtvenster

12345678910111213 Openbare sub MijnInputBox()Dim MyInput als stringMyInput = InputBox ("Dit is mijn InputBox", "MyInputTitle", "Voer HIER uw invoertekst in")If MyInput = "Voer uw invoertekst HIER in" Of MyInput = "" DanSluit subStop alsMsgBox "De tekst van MyInputBox is " & MyInputEinde sub

De invoer terugsturen naar een Excel-blad

U kunt de invoer die u in een invoervak ​​typt, retourneren in een specifieke cel in uw Excel-blad.

1 Range("P1") = InputBox("Voer uw naam in", "Voer naam in", "Voer HIER naam in")

We kunnen ook invoergegevens retourneren naar een Excel-blad met behulp van een variabele.

12345678910 Subnummer invoeren()Bij fout Hervatten volgendeDim dbl Bedrag als dubbeldblAmount = InputBox ("Vul het vereiste bedrag in", "Voer Bedrag in")Als dblAmount 0 DanBereik ("A1") = dblAmountAndersMsgBox "Je hebt geen nummer ingevuld!"Stop alsEinde sub

In het bovenstaande voorbeeld zijn we verplicht een getal in te voeren. Als we een getal invoeren, dan is de variabele dblBedrag zal het nummer in het Excel-blad in cel A1 plaatsen. Als we echter geen nummer invoeren, zal een berichtvenster ons vertellen dat we geen nummer hebben ingevoerd en wordt er niets in cel A1 geplaatst.

VBA InputBox gebruiken in Access VBA

Het VBA-invoervak ​​werkt in Access op precies dezelfde manier als in Excel bij het retourneren van gebruikersinvoer in de vorm van een berichtvenster.

Als u echter de gebruikersinvoer naar de database wilt terugsturen, moet u het Recordset-object gebruiken in plaats van het Range-object zoals dat in Excel wordt gebruikt.

1234567891011121314 Sub Voer Factuurnummer in()Dim dbs als databaseDim eerst als recordsetStel dbs = CurrentDb inStel rst = dbs.OpenRecordset("tblMatters", dbOpenDynaset)Met eerst.ToevoegenNieuw!InvNo = InputBox("Voer het factuurnummer in", "FACTUURNUMMER GENERATIE", 1).UpdateEindigt meteerst.SluitenStel eerst = Niets inStel dbs = Niets inEinde sub

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave