Kā izveidot veidlapu programmā Microsoft Excel

Satura rādītājs:

Anonim

The Kursu rezervācijas veidlapa ir vienkārša forma, kas ilustrē UserForm dizaina principus un ar to saistīto VBA kodējumu.

Tas izmanto dažādas vadīklas, tostarp tekstlodziņus, kombinētos lodziņus, opciju pogas, kas sagrupētas rāmī, izvēles rūtiņas un komandu pogas.

Kad lietotājs noklikšķina uz pogas Labi, viņa ievadītā informācija tiek ievadīta nākamajā pieejamajā darblapas rindā.

Excel formas apraksts:

Ir divi vienkārši tekstlodziņi (Vārds: un Tālrunis:), kurā lietotājs var ierakstīt brīvu tekstu, un divi kombinētie lodziņi (nodaļa un Kurss), kas ļauj lietotājam izvēlēties vienumu no saraksta.

Ir trīs iespēju pogas (Ievads, Vidējs un Papildu) ir sagrupēti rāmī (Līmenis), lai lietotājs varētu izvēlēties tikai vienu no iespējām.

Ir divas izvēles rūtiņas (Nepieciešamas pusdienas un Veģetārietis), jo, tā kā tie nav sagrupēti rāmī, vajadzības gadījumā var izvēlēties abus. Tomēr, ja rezervācijas veicējs nevēlas pusdienas, mums nav jāzina, vai viņi ir veģetārieši. Tātad, Veģetārietis izvēles rūtiņa ir pelēka, līdz tas ir nepieciešams.

Ir trīs komandu pogas (labi, Atcelt un Notīrīt veidlapu), uz kuriem katrs noklikšķinot veic iepriekš noteiktu funkciju.

Vadības rekvizītu iestatījumi:

Kontrole Tips Īpašums Iestatīšana
UserForm UserForm Vārds frmCourseBooking
Paraksts Kursu rezervācijas veidlapa
Vārds Teksta lodziņš Vārds txtName
Tālrunis Teksta lodziņš Vārds txtPhone
nodaļa Kombinētā kaste Vārds cboDepartement
Kurss Kombinētā kaste Vārds cboKurss
Līmenis Rāmis Vārds fraLevel
Paraksts Līmenis
Ievads Opciju poga Vārds optIevads
Vidējs Opciju poga Vārds optIntermediate
Papildu Opciju poga Vārds optAdvanced
Nepieciešamas pusdienas Atzīmējiet izvēles rūtiņu Vārds chkPusdienas
Veģetārietis Atzīmējiet izvēles rūtiņu Vārds chkVeģetārietis
Iespējots Nepatiess
labi Komandas poga Vārds cmdOk
Paraksts labi
Noklusējuma Taisnība
Atcelt Komandas poga Vārds cmdAtcelt
Paraksts Atcelt
Atcelt Taisnība
Notīrīt veidlapu Komandas poga Vārds cmdClearForm

Veidlapu izveide programmā Excel

Ja vēlaties veidlapu izveidot pats, vienkārši nokopējiet iepriekš redzamajā attēlā redzamo izkārtojumu. Veiciet tālāk norādītās darbības.

1. Atveriet darbgrāmatu, kurai vēlaties iekļaut veidlapu (darbgrāmatai jāpievieno UserForms, piemēram, makro) un pārslēdzieties uz Visual Basic Editor.

2. Visual Basic redaktorā noklikšķiniet uz Ievietojiet UserForm pogu (vai dodieties uz Ievietot> UserForm).

3. Ja rīkjosla pati par sevi neparādās (vispirms noklikšķiniet uz veidlapas, lai pārliecinātos, ka tā neslēpjas), noklikšķiniet uz Instrumentu kaste pogu (vai dodieties uz Skats> Rīkjosla).

4. Lai veidlapā ievietotu vadīklu, noklikšķiniet uz atbilstošās pogas rīkjoslā un pēc tam noklikšķiniet uz veidlapas. Vadīklas var pārvietot, velkot tās aiz malām, vai mainīt izmēru, velkot pogas pa perimetru.

5. Lai rediģētu vadīklas rekvizītus, pārliecinieties, vai ir atlasīta izvēlētā vadīkla, un pēc tam veiciet atbilstošās izmaiņas Rekvizīti logs. Ja neredzat rekvizītu logu, dodieties uz Skats> Rekvizītu logs.

6. Lai noņemtu vadīklu no veidlapas, atlasiet to un noklikšķiniet uz Dzēst taustiņu uz tastatūras.

UserForm faktiski neko nedarīs, kamēr nav izveidots kods, kas vada veidlapu, un tās dažādās vadīklas. Nākamais solis ir uzrakstīt kodu, kas vada pašu veidlapu.

Koda pievienošana: 1 Veidlapas inicializēšana

Veidlapas inicializēšana:

Atverot, lielākajai daļai veidlapu ir jāveic sava veida iestatīšana. Tas var iestatīt noklusējuma vērtības, pārliecināties, vai lauks ir tukšs, vai izveidot kombinēto lodziņu sarakstus. Šo procesu sauc Veidlapas inicializēšana un par to rūpējas makro, ko sauc UserForm_Initialize (ja jūs mulsina mana atšķirīgā vārda "initialis (z) e" rakstība, tas ir tāpēc, ka es runāju angļu valodā un VBA runā amerikāņu valodā - bet neuztraucieties, VBA uzrakstiet to jums!). Lūk, kā izveidot kodu kursa rezervācijas veidlapas inicializēšanai:
1. Lai apskatītu veidlapas koda logu, dodieties uz Skats> Kods vai noklikšķiniet F7.

2. Kad tiek atvērts koda logs, tajā ir tukšs UserForm_Click () procedūru. Lai izvēlētos, izmantojiet nolaižamos sarakstus koda loga augšdaļā UserForm un Palaist. Tādējādi tiks izveidota nepieciešamā procedūra. Tagad varat izdzēst procedūru UserForm_Click ().

3. Procedūrā ievadiet šādu kodu:

Private Sub UserForm_Initialize () txtName.Value = "" txtPhone.Value = "" Ar cboDepartment .AddItem "Sales" .AddItem "Marketing" .AddItem "Administration" .AddItem "Design" .AddItem "Advertising" .AddItem "Dispatch". AddItem "Transportation" beigas Ar cboDepartment.Value = "" Ar cboCourse .AddItem "Access" .AddItem "Excel" .AddItem "PowerPoint" .AddItem "Word" .AddItem "FrontPage" Beigt ar cboCourse.Value = "" optIntroduction = True chkLunch = False chkVegetarian = False txtName.SetFocus End Sub 

Kā darbojas inicializācijas kods:

Procedūras UserForm_Initialize () mērķis ir sagatavot lietotāja veidlapu VBA lietošanai, iestatot noklusējuma vērtības dažādām vadīklām un izveidojot sarakstus, kas tiks parādīti kombinētajos lodziņos.

Šīs rindas nosaka, ka abu tekstlodziņu saturs ir tukšs:

txtName.Value = "" txtPhone.Value = "" 

Tālāk ir sniegti kombinēto lodziņu norādījumi. Vispirms tiek norādīts saraksta saturs, pēc tam kombinētā lodziņa sākotnējā vērtība tiek iestatīta uz tukšu.

Ar cboDepartment .AddItem "Pārdošana" .AddItem "Mārketings" (tik daudz, cik nepieciešams …) Beigt ar 

cboDepartment.Value = ""

Ja nepieciešams, sākotnējo izvēli var izdarīt no opciju grupas, šajā gadījumā:

optIntroduction = True

Abas izvēles rūtiņas ir iestatītas uz False (t.i., nav atzīmes). Iestatiet uz Patiess, ja vēlaties, lai izvēles rūtiņa būtu jau atzīmēta:

chkLunch = Nepareizi

chkVegetarian = Nepareizi

Visbeidzot, fokuss tiek pārcelts uz pirmo tekstlodziņu. Tādējādi lietotāju kursors tiek ievietots tekstlodziņā, lai pirms rakstīšanas sākšanas viņiem nebūtu jānoklikšķina uz lodziņa.

txtName.SetFocus

Koda pievienošana: 2 Pogas darbojas

Veidlapā ir trīs komandu pogas, un katrai no tām jābūt darbināmai, izmantojot savu procedūru. Sākot ar vienkāršajiem …

Atcelšanas pogas kodēšana:

Iepriekš mēs izmantojām Rekvizītu logu, lai iestatītu Atcelt pogas Atcelt īpašumu Taisnība. Ja komandu pogas atcelšanas rekvizītu iestatāt uz True, tas noklikšķina uz šīs pogas, kad lietotājs nospiež Esc taustiņu uz tastatūras. Bet tas vien neradīs, ka veidlapai nekas nenotiks. Jums ir jāizveido kods pogas klikšķa notikumam, kas šajā gadījumā aizvērs veidlapu. Lūk, kā:

1. Kad UserForm ir atvērts rediģēšanai Visual Basic redaktorā, veiciet dubultklikšķi uz pogas Atcelt. Atveras veidlapas koda logs ar cmdCancel_Click () procedūra ir gatava rediģēšanai.

2. Veidlapas aizvēršanas kods ir ļoti vienkāršs. Pievienojiet procedūrai koda rindiņu, lai tā izskatās šādi:

Private Sub cmdCancel_Click () Unload Me End Sub 

Pogas Notīrīt formu kodēšana:

Es pievienoju pogu, lai notīrītu veidlapu gadījumam, ja lietotājs vēlētos pārdomāt un visu atiestatīt, un lai būtu vieglāk, ja viņam vienlaikus būtu jāveic vairākas rezervācijas. Viss, kas tam jādara, ir vēlreiz palaist inicializācijas procedūru. Makro var likt palaist citu makro (vai makro sēriju, ja nepieciešams), izmantojot Zvanīt atslēgvārds:

1. Veiciet dubultklikšķi uz pogas Notīrīt veidlapu. Atveras veidlapas koda logs ar cmdClearForm_Click () procedūra ir gatava rediģēšanai.

2. Pievienojiet procedūrai koda rindiņu, lai tā izskatītos šādi:

Privāta apakš cmdClearForm_Click () Zvanīt UserForm_Initialize End Sub 

Pogas Labi kodēšana:

Šis ir koda gabals, kas jāveic, lai lietotāja izvēles un teksta ievadi pārsūtītu uz darblapu. Iestatot pogas Atcelt, rekvizītu uz True, mēs iestatām arī pogu OK Noklusējuma īpašumu uz Taisnība. Tas ir jānoklikšķina uz pogas Labi, kad lietotājs nospiež Ievadiet (vai Atgriezties) taustiņu uz tastatūras (ar nosacījumu, ka viņi to nav izmantojuši Tab pāriet uz citu pogu). Šeit ir kods, lai poga darbotos:

1. Veiciet dubultklikšķi uz pogas Labi. Atveras veidlapas koda logs ar cmdOK_Click () procedūra ir gatava rediģēšanai.

2. Rediģējiet procedūru, lai pievienotu šādu kodu:

Privāta apakš cmdOK_Click () ActiveWorkbook.Sheets ("Kursu rezervācijas"). Aktivizēt diapazonu ("A1"). Atlasiet Do If IsEmpty (ActiveCell) = FalseThen ActiveCell.Offset (1, 0). Atlasiet Beigt, ja cilpa līdz IsEmpty (ActiveCell) = True ActiveCell.Value = txtName.Value ActiveCell.Offset (0, 1) = txtPhone.Value ActiveCell.Offset (0, 2) = cboDepartment.Value ActiveCell.Offset (0, 3) = cboCourse.Value If optIntroduction = True Tad ActiveCell.Offset (0, 4) .Value = "Intro" ElseIf optIntermediate = True Tad ActiveCell.Offset (0, 4) .Value = "Intermed" Cits ActiveCell.Offset (0, 4) .Value = "Adv" End If If chkLunch = True Tad ActiveCell.Offset (0, 5) .Value = "Yes" Else ActiveCell.Offset (0, 5) .Value = "No" End If Ja chkVegetarian = True Tad ActiveCell.Offset (0, 6). Vērtība = "Jā" Cits Ja chkLunch = False Tad ActiveCell.Offset (0, 6) .Value = "" Else ActiveCell.Offset (0, 6) .Value = "Nē" End If End If Range ("A1"). Atlasiet Beigt apakš 

Kā darbojas kods CmdOK_Click:

Pirmās divas rindas nodrošina, ka pareizā darbgrāmata ir aktīva, un pārvieto izvēli uz šūnu A1:

ActiveWorkbook.Sheets ("Kursu rezervācijas"). Aktivizējiet diapazonu ("A1"). Atlasiet Dažas nākamās rindas pārvieto atlasi uz leju darblapā, līdz tiek atrasta tukša šūna: Do If IsEmpty (ActiveCell) = False then ActiveCell.Offset (1 , 0). Atlasiet Beigt, ja cilpa līdz IsEmpty (ActiveCell) = True 

Nākamās četras rindas sāk rakstīt veidlapas saturu darblapā, izmantojot atsauci un pārvietojot aktīvo šūnu (kas atrodas A slejā) gar rindu šūna vienlaikus:

ActiveCell.Value = txtName.Value ActiveCell.Offset (0, 1) = txtPhone.Value ActiveCell.Offset (0, 2) = cboDepartment.Value ActiveCell.Offset (0, 3) = cboCourse.Value 

Tagad mēs nonākam pie opciju pogām. Tie ir ievietoti veidlapas rāmī, lai lietotājs varētu izvēlēties tikai vienu. IF priekšraksts tiek izmantots, lai norādītu programmai Excel, ko darīt katrai opcijai:

If optIntroduction = True Tad ActiveCell.Offset (0, 4) .Value = "Intro" ElseIf optIntermediate = True Tad ActiveCell.Offset (0, 4) .Value = "Intermed" Cits ActiveCell.Offset (0, 4) .Value = "Adv" beigas Ja 

VBA IF paziņojumus ir daudz vieglāk pārvaldīt nekā Excel IF funkciju. Jums var būt tik daudz iespēju, cik vēlaties, vienkārši ievietojiet papildu Citādi par katru. Ja būtu tikai divas iespējas, jums tas nebūtu vajadzīgs Citādi, tikai Ja un Citādi pietiktu (neaizmirstiet - viņiem visiem vajag an Beigas Ja).

Katrai izvēles rūtiņai ir vēl viens IF paziņojums. Atzīmējot izvēles rūtiņu Pusdienas obligāti, atzīme lodziņā nozīmē "Jā", personai ir vajadzīgas pusdienas, un neviena atzīme nozīmē "Nē".

Ja chkLunch = True, tad ActiveCell.Offset (0, 5) .Value = "Jā" Cits ActiveCell.Offset (0, 5). Vērtība = "Nē" Beigas Ja 

Mēs varētu izmantot līdzīgu IF paziņojumu veģetārieša izvēles rūtiņai, taču, ja persona neprasa pusdienas, nav nozīmes tam, vai viņš ir veģetārietis. Jebkurā gadījumā būtu nepareizi pieņemt, ka viņi nebija veģetārieši tikai tāpēc, ka viņiem nebija vajadzīgas pusdienas. Tāpēc IF paziņojumā ir otrs, ligzdots, ja:

Ja chkVegetarian = True, tad ActiveCell.Offset (0, 6) .Value = "Yes" Else If chkLunch = False Then ActiveCell.Offset (0, 6) .Value = "" Else ActiveCell.Offset (0, 6) .Value = "Nē" beigas Ja beigas Ja 

Atzīme lodziņā nozīmē "Jā", ja persona ir veģetāriete. Ja lodziņā nav atzīmes, ligzdotajā IF paziņojumā tiek atzīmēta izvēles rūtiņa Pusdienas. Ja izvēles rūtiņā Pusdienas obligāti ir atzīme, tad izvēles rūtiņa Veģetārietis bez atzīmes nozīmē, ka persona nav veģetāriete, tāpēc šūnā ievieto "Nē". Tomēr, ja izvēles rūtiņā Pusdienas ir nepieciešamas, nav atzīmes, tad mēs nezinām, vai šī persona ir veģetāriete (tai vienalga nav nozīmes), tāpēc šūna tiek atstāta tukša ("").

Visbeidzot, atlase tiek atgriezta darblapas sākumā, gatava nākamajam ierakstam:

Diapazons ("A1"). Izvēlieties

3. koda pievienošana: manipulēšana ar veidlapu

Visbeidzot, piemērs tam, kā veidlapas vadīklas var izmantot, kamēr tā tiek izmantota. Kad tika iestatīti kontroles rekvizīti, Iespējots izvēles rūtiņas Veģetārietis īpašums bija iestatīts uz Nepatiess. Ja vadīkla nav iespējota, lietotājs nevar ievadīt tajā vērtību, lai gan tajā var ietilpt jau esoša vērtība, un VBA var pievienot, noņemt vai mainīt vērtību.

Mums nav jāzina, vai šī persona ir veģetāriete (pat ja tā ir!), Ja viņa nepasūta pusdienas. Tātad izvēles rūtiņa Veģetārietis paliek atspējota, ja vien izvēles rūtiņā Nepieciešamās pusdienas nav ievietota atzīme. Tad lietotājs var brīvi atzīmēt izvēles rūtiņu Veģetārietis, ja vēlas. Ja viņi atzīmēs, mēs zināsim, ka viņi ir atbildējuši "jā", un, ja ne, mēs zinām, ka viņi ir atbildējuši "nē".

Mēs varam pārslēgt Iespējots īpašums no Nepatiess uz Taisnība veicot procedūru, kas tiek palaista automātiski ikreiz, kad tiek mainīta izvēles rūtiņas Nepieciešamās pusdienas vērtība. Par laimi, vairākām kontrolēm ir a Mainīt procedūru un to, ko mēs šeit izmantojam chkLunch_Change (). Mēs to izmantosim, lai iespējotu izvēles rūtiņu Veģetārietis, kad ir atzīmēta izvēles rūtiņa Nepieciešamās pusdienas, un atspējosim to, ja nav atzīmēta izvēles rūtiņa Nepieciešamās pusdienas.

Ir tikai vēl viena lieta, kas mums jādara. Pieņemot, ka kāds ir atzīmējis izvēles rūtiņu Nepieciešamās pusdienas, kā arī atzīmējis izvēles rūtiņu Veģetārietis. Tad viņi pārdomāja un noņēma izvēles rūtiņu Nepieciešamās pusdienas. Veģetāriešu izvēles rūtiņa tiktu atspējota, taču iepriekš ieliktā atzīme paliktu.

Papildu koda rindiņa var nodrošināt, ka ķeksis tiek noņemts, kad lodziņš ir atspējots. Šeit ir visa lieta:

Privāta apakšnodaļa chkLunch_Change () If chkLunch = True, tad chkVegetarian.Enabled = True Else chkVegetarian.Enabled = False chkVegetarian = False End If End Sub 

Veidlapas atvēršana

Tagad veidlapa ir gatava lietošanai, tāpēc tā ir jāatver, izmantojot vienkāršu makro. To var pievienot pielāgotai rīkjoslas pogai, komandlapai, kas uzzīmēta darblapā, vai jebkurai grafikai (ar peles labo pogu noklikšķiniet uz grafikas un izvēlieties Piešķirt makro). Ja nepieciešams, izveidojiet jaunu darbgrāmatas moduli un pievienojiet šo procedūru:

Sub OpenCourseBookingForm () frmCourseBooking.Show End Sub 

Ja jums patika mūsu emuāri, kopīgojiet to ar saviem draugiem Facebook. Un arī jūs varat sekot mums Twitter un Facebook.
Mēs labprāt uzklausītu jūsu viedokli, dariet mums zināmu, kā mēs varam uzlabot, papildināt vai ieviest jauninājumus mūsu darbā un uzlabot to jūsu labā. Rakstiet mums e -pasta vietnē