FINN-funksjonen i VBA: Hvordan bruker jeg den?

ønsker å lære å bruke FINN-funksjonen i VBA🇧🇷 Da er du på rett sted!

Hvem kjenner ikke SØK-alternativet i Excel? Hvis du har jobbet med Excel en stund, har du sannsynligvis brukt SØK-funksjonen eller den populære Ctrl + L-snarveien for å finne et ord eller en del av innholdet du vil søke etter i hele regnearket. som hele arbeidsboken.

I VBA har vi også en funksjon kalt FIND som kan hjelpe oss å finne verdien vi leter etter.

Følg detaljene nedenfor for å lære mer om denne funksjonen gjennom praktiske eksempler.

Hvordan fungerer FINN-funksjonen i VBA?

Excel VBA FIND-funksjonen søker etter en bestemt verdi innenfor et spesifikt område. Ser etter den første forekomsten av den verdien, og hvis den finnes, returnerer funksjonen cellen som inneholder den. Men hvis ingen samsvar blir funnet, returnerer funksjonen ingenting. VBA FIND-funksjonen kan returnere et eksakt eller delvis samsvar.

Følgende kode søker for eksempel etter teksten "San Pablo» i intervallet A1: A10 iArbeidsark 1🇧🇷

With Sheets("Sheet1"). Range("A1:A10")
Sett Rng = .Find(What:="São Paulo")

Hensikten med å bruke FIND-funksjonen i VBA er å finne ønsket verdi i et gitt datasett. Med en VBA-kode kan du automatisere oppgaven med å finne verdier i Excel.

Syntaks for VBA FIND-funksjon

Syntaksen for VBA FIND-funksjonen er deklarert som følger:

expression.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

hvor:

uttrykk: er områdeobjektet, som går foran FIND-funksjonen i VBA-koden. Søkeområdet kan være én eller flere rader, kolonner eller hele regnearket. VBA FIND-funksjonen godtar følgende argumenter:

  • Hva: Dette er verdien å se etter. Det kan være numerisk, tekstlig eller en hvilken som helst annen Excel-datatype. Dette argumentet er det samme som Finn-alternativet til "Finn og erstatt" fra Excel.
  • deretter: Indikerer cellen som søket vil starte fra. Den legges inn som en enkeltcellereferanse. Hvis dette argumentet utelates, begynner søket etter cellen i øvre venstre hjørne av det angitte søkeområdet.
  • Se inn: Dette er stedet (eller dataene) der verdien skal slås opp. Det kan være en kommentar (xlComments), en formel (xlFormulas) eller en verdi (xlValues). Standardverdien for dette argumentet er xlFormulas. Dessuten er dette argumentet det samme som Finn-alternativet til "Finn og erstatt" fra Excel.
  • Se: Dette argumentet bestemmer om det skal samsvare med hele celleinnholdet (eksakt samsvar) eller en del av celleinnholdet (delvis samsvar). Konstantene er xlWhole og xlPart for henholdsvis eksakte og delvise samsvar. Standardverdien for dette argumentet er xlPart.
  • Søkeordre: Dette argumentet foreslår søkerekkefølgen. Du kan angi om søket skal være i rader (xlByRows) eller kolonner (xlByColumns). Standardverdien for dette argumentet er xlByRows. Dessuten er dette argumentet det samme som Finn-alternativet til "Finn og erstatt" fra Excel.
  • Søk adresse: Indikerer adressen der søket skal utføres. Du kan søke ned eller til neste celle med xlNext-konstanten. Alternativt kan du søke bakover (opp) eller i forrige celle med xlPrevious-konstanten. Standardverdien for dette argumentet er xlNext.
  • Match tilfelle: Dette argumentet avgjør om søket skal skille mellom store og små bokstaver eller ikke. Hvis søket skiller mellom store og små bokstaver, angis dette argumentet som sant (TRUE), ellers er det usant (FALSE). Standardverdien for dette argumentet er False.
  • MatchByte: Dette argumentet bør brukes hvis noen har installert eller valgt dobbeltbytespråkstøtte. Må spesifiseres som sann hvis dobbelbytetegn skal samsvare med dobbelbytetegn. Bør spesifiseres som usann hvis dobbeltbyte-tegn skal matches med enkeltbyte-ekvivalenter.
  • søkeformat: Angir om verdien som skal søkes etter skal være i et spesifikt format (som fet eller kursiv) eller ikke. Hvis oppslagsverdien må følge en formateringsteknikk, angis dette argumentet som sant, ellers usant. Standardverdien til dette argumentet er usann (FALSE).

bare argumentet hva nødvendig. De andre argumentene er valgfrie.

FINN-funksjonen returnerer ett av følgende resultater:

  • Hvis et samsvar blir funnet, returnerer funksjonen den første cellen der verdien er funnet.
  • Hvis ingen samsvar blir funnet, returnerer funksjonen ingenting. Dette er fordi funksjonsobjektet er satt til ingenting.

Alternativt, hvis ingen treff blir funnet, spesifiseres en egendefinert melding via meldingsboksfunksjon kan returneres (se kodeeksempler nedenfor).

Merk 1: Søket starter etter cellen spesifisert i argumentet. deretter og fortsetter til siste celle i søkeområdet. Hvis verdien ikke blir funnet før denne siste cellen, starter søket på nytt fra den første cellen i søkeområdet til cellen spesifisert i argumentet. deretter🇧🇷

Derfor er cellen spesifisert i argumentet deretter det søkes etter på slutten av søkeprosessen. For flere detaljer om bruken av argumentet deretterse det andre eksemplet i denne artikkelen.

Merk 2: Hver gang VBA FIND-funksjonen brukes, vil se inn🇧🇷 se🇧🇷 søkerekkefølge y MatchByte er lagret. Hvis disse verdiene utelates neste gang funksjonen brukes, vil Excel bruke de tidligere lagrede verdiene. Derfor anbefales det å eksplisitt deklarere de oppgitte argumentene når søket utføres ved hjelp av VBA FIND-funksjonen.

Hvordan bruke FINN-funksjonen i Excel VBA?

For at du skal forstå bruken av FINN-funksjonen i VBA, har vi skilt ut noen praktiske eksempler nedenfor.

Eksempel 1: Velge cellen med den første forekomsten av søkeverdien

I dette første eksemplet, anta at du har en liste som inneholder noen navn som vist i bildet nedenfor, og du vil bla gjennom og velge cellen som inneholder navnet. pedro🇧🇷

Derfra følger du disse trinnene:

1. Få tilgang til guiden utvikleren 🇧🇷 visuell grunnleggende🇧🇷 (Hvis du ikke har Utvikler-fanen aktivert i Excel, sjekk her steg for steg).

utviklerveiledning

begge deler. På VBA-skjermen velger du ønsket regneark fra menyen til venstre. I dette eksemplet vil vi velge Arbeidsark 1 som er regnearket som inneholder listen over navn.

3. Etter å ha valgt ønsket regneark, i området til høyre, skriv inn koden nedenfor:

Velg cellen med den første forekomsten av den søkte verdien

Sub LocateName()
Range("A1:A10").Finn(What:="Peter").Velg
End Sub
  • Legg merke til i koden ovenfor at vi nevnte området vi leter etter (A1: A10🇧🇷
  • Etter å ha nevnt området, plasser et punktum (.) og skriv FINNE🇧🇷
  • Vårt første argument er det vi ser etter. For å markere argumentet kan vi passere argumentet hva:=dette vil være nyttig for å identifisere hvilken parameter vi refererer til.
  • Den siste delen er etter å finne ordet hva vi vil gjøre. Vi må velge ordet, så send argumentet som Plukke ut🇧🇷
  • Kjør deretter denne koden med nøkkelen F5 eller manuelt som vist i bildet nedenfor for å velge den første cellen som inneholder navnet pedro🇧🇷

finn i VBA

Eksempel 2: Velg cellen med den andre forekomsten av søkeverdien

I dette andre eksemplet, merk at følgende bilde inneholder noen navn i området A1:A10. Merk at navnet "pedro" vises to ganger i kolonne A.

Velg cellen med den andre forekomsten

I dette tilfellet ønsker vi å søke og velge andre forekomst av navnet "Peter" i kolonne A (det vil si celle A7). For å gjøre dette bruker vi følgende kode:

FINN andre forekomst av VBA

Sub LocateName()
Range("A1:A10").Finn(What:="Peter", After:=Range("A2")).Velg
End Sub

Legg merke til i koden ovenfor at søket starter etter celle A2 og fortsetter til siste celle i kolonne A. Dette er fordi søkeområdet ble spesifisert som kolonne A (A1:A10).

Så siden søket starter i celle A3, vil verdien "pedro” er i cellen A7 fra "regneark 2🇧🇷 Derfor vil celle A7 bli valgt av FINN-funksjonen når koden kjøres.

Hvis navnet «pedro” ikke hadde blitt funnet i celle A3 før den siste cellen i kolonne A, ville søket igjen starte ved celle A1 og slutte ved celle A2 denne gangen. Derfor er cellen spesifisert i argumentet "deretter” søkes etter rett på slutten av søkeprosessen.

Eksempel 3: Finn tekst ved å spesifisere noen av tegnene

For å søke etter tekst ved å spesifisere bare en del av den, skriv inn argumentet se som xlDel eller utelate dette argumentet. Som standard matcher FIND-funksjonen tegnene i søkeverdien mot hele strengen. Den returnerer deretter cellen som inneholder hele denne strengen.

Se på eksemplet nedenfor:

Sub LocateName()
Range("A1:A10").Find(What:="Ped", LookAt:=xlPart).Velg
End Sub

Denne koden ser etter tegnene "Ped" i området A1:A25 for "Sheet3". Cellen som inneholder verdien returneres, som er navngitt delvis korrespondanse🇧🇷 Så uavhengig av om søkeverditegnene er plassert i begynnelsen, midten eller slutten av strengen, returnerer Excel VBA et samsvar.

observasjon: konstanten xlDel den kan utelates fra koden fordi den er standardverdien til FINN-funksjonen. Men hvis dette argumentet er spesifisert, sørg for at det ikke er omgitt av doble anførselstegn.

Eksempel 4: Finne tekst i en kommentar

Du kan også bruke VBA FINN-funksjonen til å finne tekst i en cellekommentar i Excel.

For en bedre forståelse, ta en titt på eksemplet nedenfor der vi har et regneark som inneholder tre celler med kommentarer (angitt med de røde trekantene). Fra dette ønsker vi å finne teksten "provisjon betalt” plassert i en av kommentarene. I dette tilfellet vil vi bruke følgende kode:

Sub LocateComment()
Range("A1:B10").Find(What:="Commission Pays", LookIn:=xlComments).Velg
End Sub

Finn tekst i kommentarfeltet

Som et resultat vil Excel bare velge cellen som inneholder kommentaren hvis tekst ble spesifisert i koden vår.

Eksempel 5: Feilhåndtering i FIND-funksjonen i VBA

I tilfelle teksten vi leter etter ikke er innenfor det gitte området, vil VBA returnere en feil som vist nedenfor:

91 feil

For å unngå denne feilen kan vi bruke en kode som vist nedenfor:

Sub LocateName()
Dim resultat som variant

On Error Resume Next
Range("A1:A10").Finn(What:="Cristina").Velg
På feil GoTo 0

Resultat = ActiveCell.Value

Hvis Resultat = "" Da
MsgBox "Verdien du leter etter er ikke tilgjengelig i det angitte området!"
Exit Sub
End If

End Sub

Legg merke til i koden ovenfor at hvis VBA finner verdien, vil den vise den funnet verdien, ellers vil den vise meldingen som "Verdien du ser etter er ikke tilgjengelig i det gitte området🇧🇷

For flere tips om hvordan du fikser VBA-feil, sjekk ut artikkelen: Excel VBA-feil: alt du trenger å vite!

Detaljer å huske

  • FIND-funksjonen er en del av RANGE-egenskapen, og du bør bruke FIND etter kun å ha valgt området.
  • I FINN-funksjonen, det første argumentet (hva), pluss alt annet er valgfritt.
  • Hvis du finner verdien etter en bestemt celle, kan du nevne cellen i parameteren deretter av søkesyntaksen.

Last ned regnearket her som inneholder eksemplene presentert i denne opplæringen.

Sjekk også ut følgende Excel-tips:

Så hva synes du om FINN-funksjonen i VBA? Hvis du har spørsmål, legg igjen kommentaren din nedenfor. Sjekk også ut flere Excel- og VBA-tips på nettsiden vår!

Tommy Banks
Vi vil gjerne høre hva du synes

Legg igjen et svar

TechnoBreak | Tilbud og anmeldelser
logo
Aktiver registrering i innstillinger - generelt
Handlevogn