Tento tutoriál ukáže, ako získať vstup od používateľa pomocou vstupného poľa VBA.
The Vstupný box VBA umožňuje nám vyzvať používateľa na zadanie informácií. Informácie potom môžu byť použité v našom kóde VBA alebo v hárku programu Excel.
Vstupný box VBA s premennou
V našom kóde VBA môžeme deklarovať premennú, ktorá potom uloží informácie, ktoré sú zadané do vstupného poľa. Túto premennú potom môžeme použiť v našom kóde.
V závislosti od typu informácií, ktoré chceme vrátiť zo vstupného poľa, môžeme konkrétny typ premennej deklarovať buď na vrátenie textu (reťazcová alebo variantná premenná), alebo na vrátenie čísla (celočíselná, dlhá, dvojitá alebo jednoduchá premenná).
Premenná reťazca so vstupným poľom
Tu je návod, ako môžete vytvoriť InputBox, kde sa údaje vrátia do reťazcovej premennej.
123 | Dim strInput ako reťazecstrInput = InputBox („Toto je môj InputBox“, „MyInputTitle“, „Zadajte svoj vstupný text TU“) |
Všimnite si najskôr, že deklarujeme premennú. K tejto premennej bude priradená hodnota, ktorú používateľ zadá. Použili sme typ premennej String, aby vstupné pole akceptovalo textové reťazce (ktoré obsahujú akékoľvek alfanumerické znaky).
Premenná čísla so vstupným poľom
Ak deklarujete číselnú premennú, budete musieť zadať číslo iba do vstupného poľa.
12 | Dim iInput As IntegeriInput = InputBox („Zadajte číslo“, „Vytvoriť číslo faktúry“, 1) |
Najprv deklarujeme číselnú premennú ako celočíselnú premennú. Potom môžeme do vstupného poľa vložiť aj predvolenú hodnotu 1.
Ak by sme namiesto čísla zadali reťazec a potom klikli na OK, zobrazila by sa chyba Neshoda typu, pretože premenná čísla neakceptuje reťazec.
Získajte vstup od používateľa
Tu je ďalší príklad použitia najobľúbenejších funkcií InputBoxu.
Nasledujúci kód robí tri veci:
1. Požiada o vstup pomocou InputBoxu a priradí ho k premennej
2. Overí vstup, v opačnom prípade ukončí sub
3. Vráti vstup do poľa so správou
12345678910111213 | Public Sub MyInputBox ()Dim MyInput ako reťazecMyInput = InputBox („Toto je môj InputBox“, „MyInputTitle“, „Zadajte svoj vstupný text TU“)Ak MyInput = "Zadajte svoj vstupný text TU" Alebo MyInput = "" PotomUkončiť subKoniec AkMsgBox "Text z MyInputBox je" & MyInputKoniec pod |
Vrátenie vstupu do hárka programu Excel
Vstup, ktorý zadáte do vstupného poľa, môžete vrátiť do konkrétnej bunky v hárku programu Excel.
1 | Rozsah ("P1") = InputBox ("Zadajte svoje meno", "Zadajte meno", "Zadajte meno TU") |
Vstupné údaje môžeme tiež vrátiť do listu programu Excel pomocou premennej.
12345678910 | Podradené číslo ()Pri chybe Pokračovať ďalejDim dblAmount As DoubledblAmount = InputBox („Zadajte požadovanú sumu“, „Zadajte sumu“)Ak dblAmount 0 PotomRozsah ("A1") = dblAmountInakMsgBox „Nezadali ste číslo!“Koniec AkKoniec pod |
Vo vyššie uvedenom príklade sme povinní zadať číslo. Ak zadáme číslo, tak premennú dblAmount vloží číslo do listu programu Excel v bunke A1. Ak však nezadáme číslo, potom nám správa zobrazí správu, že sme nezadali číslo a do bunky A1 sa nič nevloží.
Použitie VBA InputBoxu v Access VBA
Vstupné pole VBA funguje v programe Access rovnako ako v programe Excel pri vracaní vstupu používateľa vo forme poľa so správou.
Ak však chcete vrátiť vstup používateľa do databázy, budete musieť použiť objekt Recordset, nie objekt Range, ako sa používa v programe Excel.
1234567891011121314 | Podradené číslo faktúry ()Dim dbs ako databázaDim first as RecordsetNastaviť dbs = CurrentDbNastaviť rst = dbs.OpenRecordset ("tblMatters", dbOpenDynaset)S prvým.Pridať nové! InvNo = InputBox („Zadajte číslo faktúry“, „GENERÁCIA ČÍSLA FAKTÚRY“, 1).AktualizáciaUkončiť snajskôr. ZatvorteNastaviť prvý = ničNastaviť dbs = ničKoniec pod |