Excel VBA: Hvis celle inneholder verdi, returner du en spesifisert utgang

  • Dele Denne
Hugh West

I denne artikkelen skal jeg vise deg hvordan du kan analysere situasjonen i Excel VBA hvis en celle inneholder en verdi. Du vil lære å analysere situasjonen for både en hvilken som helst verdi og en bestemt verdi.

Excel VBA-analyse: Hvis celle inneholder en verdi, så (hurtigvisning)

6566

Last ned øvelsesarbeidsbok

Last ned denne øvelsesarbeidsboken for å trene mens du leser denne artikkelen.

VBA If Cell Contains Value Then.xlsm

Excel VBA-analyse: Hvis celle inneholder en verdi, så returner utdata (trinn-for-trinn-analyse)

Her har vi et datasett med karakterene til noen studenter i fysikk, kjemi, og matematikk på en skole som heter Sunflower Kindergarten.

De tomme cellene betyr at eleven ikke dukket opp, dvs. var fraværende i den aktuelle eksamen. La oss nå analysere situasjonen, om en celle inneholder en verdi eller ikke, med dette datasettet.

⧪ Trinn 1: Erklære cellen

Først må vi erklær cellen hvis verdi vi ønsker å analysere. La oss analysere om Jennifer Marlo dukket opp i fysikkeksamenen eller ikke.

Derfor må vi sjekke om celle C12 inneholder en verdi eller ikke.

For å gjøre det, først må vi deklarere celle C12 .

Kodelinjen for å oppnå dette vil være:

1909

⧪ Trinn 2: Sjekke om cellen inneholder en verdi (inkludert en spesiell verdi)

Deretter må vi sjekke omcellen inneholder en verdi eller ikke. Vi utfører dette ved å bruke en Hvis-betingelse . Kodelinjen vil være:

7403

Denne koden vil bli utført hvis cellen inneholder en verdi. For å se etter en verdi (for eksempel om den inneholder 100 eller ikke), bruk den spesifikke verdien med et Lik med -symbol.

8861

⧪ Trinn 3: Tildeling av oppgaven

Deretter må du sette opp en oppgave som skal utføres hvis cellen inneholder en verdi (eller en spesifikk verdi).

Her ønsker vi å vise meldingen “Jennifer Marlo dukket opp i fysikkeksamen.” . Så linjen med kode vil være:

9866

⧪ Trinn 4: Avslutt If-blokken

Til slutt må du erklære en slutt på If-blokken.

2322

Så den komplette VBA koden vil være:

⧭ VBA-kode:

8850

⧭ Utdata:

Kjør denne koden ved å klikke Kjør Sub/UserForm -knappen på verktøylinjen.

Det vil vise meldingen “Jennifer Marlo dukket opp i fysikkeksamen.” ettersom cellen C12 inneholder en verdi på 50 .

Eksempler som involverer hvis celle inneholder en verdi deretter en spesifisert utgang med Excel VBA

Vi har lært å analysere om en celle inneholder en verdi eller ikke i VBA . La oss nå utforske noen eksempler for å gjøre forståelsen klar.

1. Utvikle en makro for å filtrere ut en verdi Hvis den tilsvarende cellen inneholder en verdi, så i Excel VBA

La oss utvikle en Makro for å filtrere ut studentene som dukket opp i hver av eksamenene.

Det vil si at vi må sjekke cellene som inneholder karakterene til hvert av fagene og se om de inneholder en verdi eller ikke.

Hvis de gjør det, må vi sortere ut navnet på den tilsvarende studenten.

Den komplette VBA -koden for å oppnå dette vil være:

⧭ VBA-kode:

7755

⧭ Utdata:

Velg datasettet ( Inkluder overskriftene ) og kjør denne makroen .

Først blir du bedt om å angi referansen til den første celle der du vil ha de filtrerte dataene. Jeg har skrevet inn G3 .

Klikk deretter OK . Du får navnene på studentene som dukket opp i hver av eksamenene (inkludert overskriftene ) i et nytt datasett som starter fra celle G3 .

2. Opprette en brukerdefinert funksjon for å sortere ut en verdi Hvis den tilsvarende cellen inneholder en spesifikk verdi, så i Excel VBA

Nå skal vi lage en brukerdefinert funksjon som vil returnere navnene på elevene som fikk en bestemt karakter i hvert av fagene.

Prosedyren er nesten den samme som ovenfor. Vi må sjekke cellene som inneholder merkene til hvert av fagene og se om de er lik en bestemt verdi eller ikke.

Hvis de er det, returnerer vi navnet på den tilsvarende eleven.

VBA koden vil være:

⧭ VBAKode:

2525

⧭ Utdata:

Koden lager en funksjon kalt Cells_with_Values som tar to argumenter, en Rekkevidde og en Verdi .

La oss finne ut elevene som fikk 100 i hvert av fagene ved å bruke denne funksjonen.

Velg et celleområde i regnearket og skriv inn denne funksjonen i den første cellen i området:

=Cells_with_Values(B3:E13,100)

[Her B3: E3 er mitt datasett (inkludert overskriftene ) og 100 er min samsvarende verdi. Du bruker din.]

Trykk deretter CTRL + SHIFT + ENTER ( Array Formel ). Den returnerer en matrise som består av navnene på elevene som fikk 100 i hvert emne, inkludert overskriftene .

3. Utvikle et brukerskjema for å trekke ut en verdi hvis den tilsvarende cellen inneholder en verdi (eller en spesifikk verdi) i Excel VBA

Til slutt vil vi utvikle en brukerskjema for å trekke ut navn på studenter som dukket opp (eller fikk spesifikke karakterer) i noen spesifikke eksamener.

⧪ Trinn 1: Åpne brukerskjemaet

Gå til Sett inn > UserForm -alternativet i VBA -editoren for å åpne en ny UserForm . Et nytt Brukerskjema kalt Brukerskjema1 vil bli åpnet.

⧪ Trinn 2: Dra verktøy til brukerskjemaet

I tillegg til UserForm får du Verktøykassen . Flytt markøren over Verktøykassen og dra 4 etiketter (etikett1, etikett2,Label3, Label4) og 3 ListBoxes (ListBox1, ListBox2, ListBox3) og en TextBox (TextBox1) i rektangulær form over UserForm .

Dra deretter en annen Label (Label5) og en TextBox (TextBox2) til nederste venstre hjørne av UserForm .

Til slutt drar du en CommandButton (CommandButton1) til nedre høyre hjørne.

Endre visningene av Etikettene til Oppslagskolonne , Returkolonne , Enhver verdi eller en spesifikk verdi , Verdi, og Startcelle.

Endre også visningen av CommandButton1 til OK .

⧪ Trinn 3: Skriv kode for ListBox3

Dobbeltklikk på ListBox3 . En Privat underprosedyre kalt ListBox3_Click åpnes. Skriv inn følgende kode der.

3290

⧪ Trinn 4: Skriv kode for CommandButton1

Dobbelklikk deretter på CommandButton1 . En annen Privat underprosedyre kalt CommandButton1_Click åpnes. Skriv inn følgende kode der.

3912

⧪ Trinn 5: Skrive kode for å kjøre brukerskjemaet

Til slutt setter du inn en ny modul fra VBA-verktøylinje og sett inn følgende kode der.

4944

⧪ Trinn 6: Kjøre UserForm (The Final Output)

Din UserForm er nå klar til bruk. Velg datasettet fra regnearket ( B3:E13 her) (inkludert overskriftene ) ogkjør Makroen kalt Run_UserForm .

UserForm vil bli lastet inn i regnearket. Fra Oppslagskolonne -tabellen har jeg valgt Fysikk og Matematikk , fordi jeg ønsker å få elevnavnene som dukket opp i Fysikk og Matematikk -eksamener.

Fra tabellen Returkolonne har jeg valgt Elevens navn , fordi jeg ønsker å få elevnavnene.

Og fra tabellen Enhver verdi eller spesifikk verdi har jeg valgt Enhver verdi .

Til slutt, i Startcelle -boksen, jeg har satt G3 .

Klikk deretter OK . Du får navnene på elevene som dukket opp i fysikk og matematikk eksamenene fra celle G3 .

Hvis du hadde valgt Spesifikk verdi fra tabellen Enhver verdi eller spesifikk verdi , ville du ha fått en annen Tekstboks for å angi den spesifikke verdien.

Her har jeg skrevet inn 100 .

Klikk OK . Og du får elevene som fikk 100 i fysikk og kjemi .

Ting å huske

Vi brukte en todimensjonal matrise for å returnere elevnavnene i den brukerdefinerte funksjonen beskrevet i eksempel 2 .

Hugh West er en svært erfaren Excel-trener og analytiker med over 10 års erfaring i bransjen. Han har en bachelorgrad i regnskap og finans og en mastergrad i bedriftsøkonomi. Hugh har en lidenskap for undervisning og har utviklet en unik undervisningstilnærming som er enkel å følge og forstå. Hans ekspertkunnskap om Excel har hjulpet tusenvis av studenter og fagfolk over hele verden med å forbedre sine ferdigheter og utmerke seg i karrieren. Gjennom bloggen sin deler Hugh sin kunnskap med verden, og tilbyr gratis Excel-opplæringer og nettbasert opplæring for å hjelpe enkeltpersoner og bedrifter å nå sitt fulle potensial.