VBA InputBox - Hankige sisend kasutajalt makro - VBA koodi näited

See õpetus näitab, kuidas saada VBA sisendkastiga kasutajalt sisendit.

The VBA sisendkast võimaldab meil paluda kasutajal teavet sisestada. Seejärel saab teavet kasutada meie VBA koodis või Exceli töölehel.

Muutujaga VBA sisendkast

Saame oma VBA -koodis deklareerida muutuja, mis seejärel salvestab sisendkasti sisestatud teabe. Seejärel saame seda muutujat oma koodis kasutada.

Sõltuvalt teabe tüübist, mida soovime sisestuskastilt tagastada, saame teatavat tüüpi muutuja deklareerida kas tagastustekstiks (string või variantmuutuja) või arvu tagastamiseks (täisarv, pikk, kahekordne või üksik muutuja).

Stringi muutuja koos sisendkastiga

Siit saate teada, kuidas saate luua sisendkasti, kus andmed tagastatakse stringimuutujaks.

123 Hämarda strInput kui stringstrInput = InputBox ("This is my InputBox", "MyInputTitle", "Sisesta oma sisestatud tekst SIIN")

Pange kõigepealt tähele, et deklareerime muutuja. Sellele muutujale määratakse väärtus, mille kasutaja sisestab. Kasutasime muutujatüüpi String, et sisestuskast võtaks vastu tekstistringid (mis sisaldavad mis tahes tähtnumbrilisi tähemärke).

Muutuja arv koos sisendkastiga

Kui deklareerite numbrimuutuja, peate sisestama numbri ainult sisendkasti.

12 Dim iInput täisarvunaiInput = InputBox ("Palun sisestage number", "Loo arve number", 1)

Esiteks kuulutame arvmuutuja täisarvuliseks muutujaks. Seejärel saame sisestuskasti panna ka vaikeväärtuse 1.

Kui peaksime numbri asemel sisestama stringi ja seejärel klõpsama nuppu OK, saame vea Tüübi mittevastavus, kuna arvumuutuja ei aktsepteeri stringi.

Hankige kasutajalt sisendit

Siin on veel üks näide, mis kasutab InputBoxi kõige populaarsemaid funktsioone.

Järgmine kood teeb kolme asja:

1. Palub sisestada InputBoxiga ja määrab selle muutujale

2. Kontrollib sisendit, muul juhul väljub alamast

3. Tagastab sõnumikasti sisendi

12345678910111213 Avalik alamminupp ()Dim MyInput stringinaMyInput = InputBox ("This is my InputBox", "MyInputTitle", "Sisestage sisendtekst SIIT")Kui MyInput = "Sisestage sisendtekst SIIT" Või MyInput = "" SiisVälju subLõpp KuiMsgBox "MyInputBoxi tekst on" & MyInputEnd Sub

Sisendi tagastamine Exceli lehele

Sisendkasti sisestatud sisendi saate tagastada Exceli lehe konkreetsesse lahtrisse.

1 Vahemik ("P1") = InputBox ("Palun sisestage oma nimi", "Sisestage nimi", "Sisestage nimi SIIN")

Samuti saame muutuja abil sisestada andmed Exceli lehele.

12345678910 Alamnumber ()Vea korral Jätka järgmistDim dblAmount DoubledblAmount = InputBox ("Palun sisestage nõutav summa", "Sisestage summa")Kui dblAmount 0 SiisVahemik ("A1") = dblAmountMuiduMsgBox "Te ei sisestanud numbrit!"Lõpp KuiEnd Sub

Ülaltoodud näites peame sisestama numbri. Kui sisestame arvu, siis muutuja dblAmount paneb numbri lahtrisse A1 Exceli lehele. Kui me aga numbrit ei sisesta, teatab sõnumikast, et me pole numbrit sisestanud ja lahtrisse A1 midagi ei sisestata.

VBA InputBoxi kasutamine Access VBA -s

VBA sisestuskast töötab Accessis täpselt samamoodi nagu Excelis kasutaja sisendi tagastamisel sõnumikastina.

Kui aga soovite kasutaja sisendi andmebaasi tagastada, peate kasutama Excelis kasutatava objekti Range asemel objekti Recordset.

1234567891011121314 Sub EnterInvoiceNumber ()Dim dbs andmebaasinaDim rst Esmalt salvestusenaMäära dbs = CurrentDbMäära rst = dbs.OpenRecordset ("tblMatters", dbOpenDynaset)Koos esimesega.Lisage uus! InvNo = InputBox ("Palun sisestage arve number", "ARVE NUMBER GENERATION", 1).UuendaLõpetaesimene. SuleMäära esimene = mitte midagiMäära dbs = mitte midagiEnd Sub

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave