Ynhâldsopjefte
Yn dit artikel sil ik jo sjen litte hoe't jo de situaasje analysearje kinne yn Excel VBA as in sel in wearde befettet. Jo learje de situaasje te analysearjen foar sawol elke wearde as in bepaalde wearde.
Excel VBA-analyze: As sel in wearde befettet, dan (Quick View)
5331
Download Practice Workbook
Download dit oefenwurkboek om te oefenjen wylst jo dit artikel lêze.
VBA If Cell Contains Value Then.xlsm
Excel VBA-analyze: As sel in wearde befettet, gean dan werom út (stap foar stap analyse)
Hjir hawwe wy in gegevensset mei de tekens fan guon studinten yn natuerkunde, skiekunde, en Wiskunde yn in skoalle mei de namme Sunflower Kindergarten.
De lege sellen betsjutte dat de studint net ferskynde, dat is, wie ôfwêzich yn dat bepaalde eksamen. Litte wy no de situaasje analysearje, oft in sel in wearde befettet of net, mei dizze gegevensset.
⧪ Stap 1: De sel ferklearje
Earst moatte wy ferklearje de sel waans wearde wy analysearje wolle. Litte wy analysearje oft Jennifer Marlo yn it Natuerkunde-eksamen ferskynde of net.
Dêrom moatte wy kontrolearje oft sel C12 in wearde befettet of net.
Om dat te dwaan, earst moatte wy sel C12 deklarearje.
De rigel koade om dit te berikken sil wêze:
6551
⧪ Stap 2: Kontrolearje oft de sel befettet in wearde (ynklusyf in bepaalde wearde)
Dêrnei moatte wy kontrolearje oftde sel befettet in wearde of net. Wy sille dit útfiere mei in As betingst . De rigel fan koade sil wêze:
9725
Dizze koade sil útfierd wurde as de sel in wearde befettet. Om te kontrolearjen op in wearde (Bygelyks oft it 100 befettet of net), brûk dy spesifike wearde mei in symboal Lyk oan .
4243
⧪ Stap 3: Taak tawize
Dan moatte jo in taak ynstelle dy't útfierd wurdt as de sel in wearde (of in spesifike wearde) befettet.
Hjir wolle wy it berjocht sjen litte "Jennifer Marlo ferskynde yn it fysika-eksamen." . De rigel fan koade sil dus wêze:
8984
⧪ Stap 4: It If Block beëinigje
Uteinlik moatte jo in ein oan it If-blok ferklearje.
4730
Dus de folsleine VBA koade sil wêze:
⧭ VBA Code:
4759
⧭ Utfier:
Dizze koade útfiere troch te klikken op de knop Under/UserForm útfiere op de arkbalke.
It sil it berjocht “Jennifer Marlo ferskynde yn natuerkunde-eksamen.” as de sel C12 in wearde befettet, fan 50 .
Foarbylden wêrby't as sel in wearde befettet dan in spesifisearre útfier mei Excel VBA
Wy hawwe leard te analysearjen as in sel in wearde of net yn VBA . Litte wy no wat foarbylden ûndersykje om it begryp dúdlik te meitsjen.
1. In makro ûntwikkelje om in wearde te filterjen As de oerienkommende sel in wearde befettet, dan yn Excel VBA
Litte wy in Makro om de learlingen út te filterjen dy't yn elk fan 'e eksamens ferskynden.
Dat is, wy moatte de sellen kontrolearje mei de tekens fan elk fan 'e fakken en sjen oft se in wearde befetsje of net.
As se dat dogge, dan moatte wy de namme fan de oerienkommende studint sortearje.
De folsleine VBA -koade om dit te berikken sil wêze:
⧭ VBA-koade:
9378
⧭ Utfier:
Selektearje de gegevensset ( Ynklusyf de Headers ) en fier dizze Macro .
Earst wurdt jo frege de referinsje fan de earste yn te fieren sel wêr't jo de filtere gegevens wolle. Ik haw G3 ynfierd.
Klik dan op OK . Jo krije de nammen fan 'e learlingen dy't yn elk fan 'e eksamens ferskynden (Ynklusyf de Headers ) yn in nije gegevensset dy't begjint fan sel G3 .
2. In troch brûkers definieare funksje oanmeitsje om in wearde út te sortearjen As de oerienkommende sel in spesifike wearde befettet, dan sille wy yn Excel VBA
No sille wy in troch brûkers definieare funksje oanmeitsje dy't de nammen fan 'e learlingen sil weromjaan dy't yn elk fan 'e fakken in spesifyk sifer krige.
De proseduere is hast itselde as boppesteande. Wy moatte de sellen kontrolearje mei de tekens fan elk fan 'e fakken en sjen oft se gelyk binne oan in spesifike wearde of net.
As se binne, dan jouwe wy de namme fan 'e oerienkommende studint werom.
De VBA koade sil wêze:
⧭ VBAKoade:
2241
⧭ Utfier:
De koade makket in funksje mei de namme Cells_with_Walues dy't nimt twa arguminten, in Berik en in Wearde .
Litte wy de learlingen útfine dy't 100 krigen yn elk fan 'e fakken mei dizze funksje.
Selektearje in berik fan sellen yn jo wurkblêd en fier dizze funksje yn yn de earste sel fan it berik:
=Cells_with_Values(B3:E13,100)
[Hjir B3: E3 is myn gegevensset (ynklusyf de Headers ) en 100 is myn oerienkommende wearde. Jo brûke jo ien.]
Druk dan op CTRL + SHIFT + ENTER ( Array Formule ). It sil in array weromjaan dy't bestiet út de nammen fan 'e learlingen dy't 100 krigen yn elk fak, ynklusyf de Headers .
3. Untwikkelje fan in brûkersformulier om in wearde út te heljen as de oerienkommende sel in wearde befettet (of in spesifike wearde) yn Excel VBA
Uteinlik ûntwikkelje wy in UserForm om de nammen fan studinten dy't ferskynden (of krigen spesifike punten) yn guon spesifike eksamens.
⧪ Stap 1: Iepenje it brûkersformulier
Gean nei de Ynfoegje > UserForm opsje yn de VBA bewurker om in nij UserForm te iepenjen. In nij UserForm mei de namme UserForm1 sil iepene wurde.
⧪ Stap 2: Tools slepe nei it UserForm
Njonken it UserForm krije jo de Toolbox . Ferpleats jo rinnerke oer de Toolbox en sleep 4 Labels (Label1, Label2,Label3, Label4) en 3 ListBoxes (ListBox1, ListBox2, ListBox3) en in TextBox (TextBox1) yn in rjochthoekige foarm oer de UserForm .
Sleep dan in oar Label (Label5) en in TextBox (TextBox2) nei de linker ûnderhoeke fan it UserForm .
Sleep as lêste in CommandButton (CommandButton1) nei de rjochter ûnderhoeke.
Feroarje de werjeften fan de Labels nei Opsykkolom , Retourkolom , Elke wearde as in spesifike wearde , Wearde, en Startsel.
Feroarje ek de werjefte fan de CommandButton1 yn OK .
⧪ Stap 3: Koade skriuwe foar ListBox3
Dûbelklik op ListBox3 . In Private subproseduere mei de namme ListBox3_Click sil iepenje. Fier dêr de folgjende koade yn.
3095
⧪ Stap 4: Koade skriuwe foar CommandButton1
Dûbelklik dan op CommandButton1 . In oare Private subproseduere mei de namme CommandButton1_Click sil iepenje. Fier dêr de folgjende koade yn.
5427
⧪ Stap 5: Koade skriuwe foar it útfieren fan it brûkersformulier
Foegje úteinlik in nije Module yn fan de VBA arkbalke en ynfoegje dêr de folgjende koade.
6695
⧪ Stap 6: It brûkersformulier útfiere (de lêste útfier)
Jo UserForm is no klear foar gebrûk. Selektearje de gegevensset út it wurkblêd ( B3:E13 hjir) (ynklusyf de Headers ) enútfiere de Macro neamd Run_UserForm .
De UserForm sil yn it wurkblêd laden wurde. Ut de tabel Opsykkolom haw ik Natuerkunde en Wiskunde selektearre, om't ik de nammen fan de learlingen krije wol dy't yn Natuerkunde stiene. en Wiskunde -eksamens.
Ut de tabel Return Column haw ik Student Name selektearre, om't ik de studintnammen krije wol.
En út 'e tabel Elke wearde of spesifike wearde haw ik Elke wearde selekteare.
Lêst yn 'e Startsel doaze, ik haw pleatst G3 .
Klik dan op OK . Jo krije de nammen fan 'e learlingen dy't ferskynden yn Natuerkunde en Wiskunde eksamens begjinnend fan sel G3 .
As jo spesifike wearde selektearre hiene út de tabel Elke wearde of spesifike wearde , soene jo in oare Tekstfak krigen hawwe om de spesifike wearde yn te fieren.
Hjir haw ik 100 ynfierd.
Klik op OK . En jo krije de learlingen dy't 100 krigen yn Natuerkunde en Skiekunde .
Dingen om te ûnthâlden
Wy brûkten in twadiminsjonale array om de studintnammen werom te jaan yn de User-Defined Function beskreaun yn foarbyld 2 .