Exceli VBA sisendboks

Kuigi enamasti kasutate andmeid, mis on juba teiega, tuleb mõnikord ette olukorda, kus soovite, et kasutaja sisestaks sellised andmed nagu nimi, vanus jms. Sellist sisendteavet on mõnikord vaja uuringu korraldamisel ja peame üle vaatama inimeste erapooletu arvamuse.

Kasutades Exceli VBA sisendkausta InputBox, saame kasutajalt sisendandmeid. Nagu nimigi ütleb, töötab InputBox hüpikkastina, mis palub kasutajal teatud teavet sisestada.

VBA sisendboksi süntaks

Järgmine on VBA sisendboksi süntaks:

Kus,

  • Viip - teade, mis kuvatakse kasutajale. See on ainus nõutav argument, ülejäänud argumendid on valikulised.
  • Pealkiri - see on pealkiri, mis kuvatakse dialoogi aknas pärast InputBox-i väljavõtte edukat täitmist. Kui seda ei anta, prindib süsteem vaikimisi pealkirjana Microsoft Excel.
  • Default - see on vaikimisi väärtus, mis kuvatakse dialoogiboksis. Me ei saa seda ka nullina hoida. Sellele argumendile pole vaikimisi väärtust seatud.
  • XPos - dialoogiboksi asukoha koordinaat X-teljel.
  • YPos - dialoogiboksi asukoha koordinaat Y-teljel.
  • HelpFile - kasutatava abifaili asukoht. See argument muutub kohustuslikuks, kui see tuleb seadistada, kui argument "Kontekst" on vastu võetud.
  • Kontekst - tähistab kasutatud spikrifaili spikri konteksti ID-d. Kohustuslik kasutada, kui argument 'HelpFile' on edastatud.
  • Kõigist neist argumentidest piisab sisendboksi edukaks loomiseks ainult esimesest kolmest.

InputBoxi loomine Excelis VBA

Allpool on toodud erinevad sammud, kuidas VBA-koodi abil Excelis sisendboksi luua.

Selle VBA InputBox Exceli malli saate alla laadida siit - VBA InputBox Exceli mall
  • Avage VBE (Visual Basic Editor, vajutades üheaegselt Exceli failis klahve Alt + F11 ja klõpsake nuppu Lisa ja lisage VBE-s uus moodul .

  • Looge sellesse moodulisse makro nimega 'Moodul1'. Määrake makrole nimi.

  • Tippige redaktorisse käsk InputBox.

Andke InputBox-i väljaandele järgmised sisendid:

  • Küsimus: “Kas ma tean teie täisnime?”
  • Pealkiri: „Isiklik teave“
  • Vaikimisi: „Alustage siia tippimist

Kood:

 Alam InputBoxEX () InputBox "Kas ma tean teie nime?", "Isiklik teave", "Alustage siia tippimist" 

  • Selle koodi käivitamiseks vajutage F5 või käivitusnuppu.

Kuidas salvestada sisendboksi väljund lahtritesse?

Olete loonud sisendboksi kasutajalt sisendi saamiseks. Kuid kus väljund salvestatakse? Me pole maininud ühtegi asukohta, kus väljundit saaks salvestada.

Salvestame väljundi, mille saame InputBoxist lahtritesse Exceli jaoks, järgides VBA järgmisi samme:

  • Kuulutage uus muutuja 'Nimi', tüübiga 'Variant'. Seda tüüpi muutujatel võib olla mis tahes väärtus (numbriline / string / loogiline jne).

Kood:

 Alam-sisendBoxEX () Hämar nimi variandi lõpp-alammena 

  • Selle muutuja nimele "Nimi" väärtuse määramiseks kasutage InputBoxi.

Kood:

 Sub InputBoxEX () Hämar nimi variandinimena = InputBox ("Kas ma võin teie nime teada?", "Isiklik teave", "Alustage siia tippimist") Lõpeta alammenüü 

Kui oleksite võinud märgata sulgu pärast InputBoxi avaldust, on need vajalikud, kuna me kasutame seda avaldust muutujale „Name”. Niipea kui see muutub muutuja väärtuseks, tuleb see mainida sulgudega sobivas vormingus.

  • Mis iganes väärtust kasutaja on dialoogiboksi sisestanud, tahame, et see näeks ka Exceli lehe lahtrit A1. Pange VBE-sse järgmine lause: Vahemik („A1”): väärtus = nimi.

Kood:

 Alam InputBoxEX () Hämar nimi variandinimena = InputBox ("Kas ma võin teie nime teada?", "Isiklik teave", "Alustage siia tippimist") vahemik ("A1"). Väärtus = Nimi Lõpp Alam 

See on see, nüüd käivitame selle koodi ja vaatame, kuidas see töötab.

  • Selle koodi käivitamiseks klõpsake nuppu Käivita või vajutage F5, kuvatakse järgmine dialoogiboks. Kirjutage oma nimi dialoogiboksi, kus kuvatakse nimi „Isiklik teave”, ja klõpsake nuppu OK, et näha, kuhu väljund prinditakse.

  • Niipea kui sisestate väärtuse ja klõpsate nuppu OK, näete lahtrisse A1 sisestatud väärtust. Vaadake allolevat ekraanipilti.

Mis tahes väärtust saab InputBoxi abil salvestada, kui muutuja on õigesti määratletud. Sel juhul olete muutuja 'Name' määratlenud kui 'Variant'. Andme tüübi variant võib võtta mis tahes andmeväärtuse, nagu ma varem ütlesin.

Vaadake allolevat näidet:

Esitan hüpikakna korral dialoogiboksi argumendina numbri. Vaadake järgmist:

Klõpsake nuppu OK, vaadake allpool toodud väljundit:

Lahtri A1 väärtus muudetakse 2019-ks.

Nüüd muutke muutuja tüüp kuupäevaks.

Kood:

 Sub InputBoxEX () Hämar nimi kui kuupäeva nimi = InputBox ("Kas ma võin teie nime teada?", "Isiklik teave", "Alustage siia tippimist") vahemik ("A1"). Väärtus = Nimi Lõpp Alam 

Käivitage kood ja proovige sisestada väärtus, mis pole kuupäev. Sisestan oma nime ise ja klõpsan nuppu OK.

  • Pärast OK klõpsamist kuvatakse käitusaja veateade, mis ütleb: 'Type neatmatch'.

See juhtus seetõttu, et muutuja nime tüüp on Date now ja ma olen sisestanud argumendi, mis ei ole kuupäeva väärtus (stringi nimi). Selle tõttu seda koodi ei käivitata ja kuvatakse tõrge.

Kasutaja sisendi valideerimine

Mis siis, kui ma ütlen teile, et kasutaja sisendit saab piirata? Jah, see on tõsi! Saate piirata kasutaja sisestatud märkide, numbrite või loogiliste jne sisestusega.

Kasutaja sisendi piiramiseks võite kasutada rakendust Application.InputBox.

Application.InputBoxi süntaks on järgmine:

Kus,

Viip - teade, mis kuvatakse kasutaja jaoks.

Pealkiri - dialoogiboksi pealkiri .

Default - vaikeväärtus, mis ilmub dialoogiboksi all kirjutatavale alale.

Type - sisendi tüüp.

Need on ainsad olulised argumendid, mis on selle väite käivitamiseks piisavad.

Alustame seda näite kaudu.

  • Kuulutage muutuja nimi variandina.

Kood:

 Alam-sisendBoxEX () Hämar nimi variandi lõpp-alammena 

Määrake muutujale nimega Application.InputBox samad argumendid, mida olete kasutanud sisendkaustas. st Kiire, pealkiri ja vaikimisi. Vaadake allolevat koodi:

Kood:

 Sub InputBoxEX () Hämar nimi variandinimena = Application.InputBox ("Kas ma võin teie nime teada?", "Isiklik teave", "Alustage siia tippimist") Lõpp alammenüüga 

Pange nüüd koma viis korda, et eirata vasakut, ülast, HelpFile'i ja HelpContextID. Pärast 5 koma saab määrata sisestuse tüübi.

Kood:

 Sub InputBoxEX () Hämar nimi variandinimena = Application.InputBox ("Kas ma võin teada teie nime?", "Isiklik teave", "Alustage siia tippimist",,,,, 

Sisestusstringi tüübil on allpool nimetatud kinnitused:

  • Valime oma avalduses tüübiks 1. See tähendab, et avanevas dialoogiboksis on aktsepteeritavad ainult numbrid / arvväärtused.

Kood:

 Alam-sisend InputBoxEX () Hämar nimi variandinimena = rakendus.InputBox ("Kas ma võin teada teie nime?", "Isiklik teave", "Alustage siia tippimist",,,,, 1) Lõpeta alamkaust 

  • Käivitage kood käsitsi või klahvi F5 abil ja sisestage sisestamisala sisestamiseks nimi, nagu allpool näidatud. Seejärel klõpsake nuppu OK ja vaadake väljundit.

See ütleb, et number pole õige. See näib loogiline, kuna oleme määranud muutuja sisendi tüübi numbriks ja pakkudes teksti sisendina, mida süsteem ei aktsepteeri.

Sel viisil saate piirata kasutaja sisestama ainult neid väärtusi, mida soovite sisendboksi kaudu näha.

Asjad, mida meeles pidada

  • InputBox võtab vastu kuni 255 argumenti ja saab kuvada ainult 254. Seega olge kasutaja sisestatava maksimaalse pikkuse osas ettevaatlik.
  • Sisendandmete tüübi määramiseks saab kasutada rakendusmeetodit. Kui aga seda ei kasutata, peate olema sisendandmete tüübi osas täpsem.
  • Soovitatav on valida andmete tüübi variant, kuna see mahutab numbrilisi / tekstilisi / loogilisi vms. B = väärtused.

Soovitatavad artiklid

See on olnud VBA sisendboksi juhend. Siin arutasime, kuidas luua sisendboksi Excelis, kasutades VBA-koodi, koos praktiliste näidete ja allalaaditava excelimalliga. Võite vaadata ka meie teisi soovitatud artikleid -

  1. Kuidas kasutada FIND-funktsiooni Excelis
  2. VBA funktsiooni loomine Excelis
  3. Vahemiku juhend Excelis
  4. Kuidas kasutada VBA VLOOKUP funktsiooni?

Kategooria: