Indholdsfortegnelse
Under arbejdet med Microsoft Excel skal vi nogle gange finde den værdi, der passer til et område. Det kan vi nemt gøre med Excel-funktioner. Der er funktioner i VBA, som vi kan bruge, men ingen af dem er lig med MATCH I denne artikel lærer vi, hvordan vi kan matche en værdi i et interval med Excel VBA .
Download arbejdsbog til øvelser
Du kan downloade arbejdsbogen og øve dig med dem.
VBA Match værdi i Range.xlsmIntroduktion til Excel VBA Match-funktionen
Match-funktion i Excel VBA er en nyttig konstrueret opslagsfunktion, der ligesom VLOOKUP , HLOOKUP , og den INDEX returnerer placeringen af identiske eller sammenlignelige matchede opslagsværdier, der er fundet i arrays eller en database. Denne funktion er en regnearkfunktion, som programmet bruger. Da det er en regnearkfunktion, svarer parametrene for funktionen Match til parametrene for regnearkfunktionen.
3 eksempler på Excel VBA til at matche værdien i området
1. Match værdi i interval med VBA Match-funktion i Excel
Sådan bruger du Excel VBA Match-funktionen , for at finde en matchværdi i et område, skal vi bruge følgende datasæt. Datasættet har nogle elevernes navne i kolonnen C , deres karakterer for et bestemt emne i kolonne D , og løbenummeret for hver elev i kolonne B Lad os nu antage, at vi ønsker at finde matchpositionen i celle G5 af et bestemt mærke, og det mærke, som vi ønsker at matche, står i celle F5 .
Lad os demonstrere proceduren for at finde matchværdier i et område ved hjælp af Excel VBA-funktionen Match .
TRIN:
- Først skal du gå til Udvikler fanen fra farvebåndet.
- For det andet skal du klikke på Visual Basic for at åbne den Visual Basic-editor , hvor vi skriver koden. Eller du kan trykke på Alt + 11 for at åbne den Visual Basic-editor .
- En anden måde at åbne Visual Basic-editor er blot at højreklik på på regnearket, og klik på Se kode .
- Dette vil åbne Visual Basic-editor Skriv nu koden der.
VBA-kode:
Sub example1_match() Range("G5").Value = WorksheetFunction.Match(Range("F5").Value, Range("D5:D10"), 0) End Sub
- For at køre koden skal du derefter trykke på F5 på dit tastatur eller klik på Rub Sub knap.
- Endelig kan du se, at matchet er fundet i position 5 .
🔎 Hvordan fungerer VBA-koden?
Sub example1_match()
: Det betyder, at vi definerer en underprocedure ved at angive et makronavn.Range("G5").Værdi
: Vi ønsker, at output skal gemmes i celle G5 .WorksheetFunction
: Ved at bruge denne kode kan vi få adgang til VBA-funktionerne.
Match(Range("F5").Værdi, Range("D5:D10"), 0)
: Her bruger vi funktionen Match i VBA. Da vi ønsker at tage værdien fra celle F5 og finde ud af positionen i området D5:D10 .End Sub
: Det betyder, at vi afslutter proceduren.
Læs mere: Excel VBA til at matche streng i kolonne (5 eksempler)
2. Brug Excel VBA til at matche værdi fra et andet regneark
Vi kan finde matchværdier i intervallet fra et andet regneark ved hjælp af VBA-funktionen Match på Excel Antag, at vi har et datasæt i et ark med navnet " Data ", og vi ønsker resultatet i arknavnet " Resultat "Og vi bruger det samme datasæt. Lad os nu følge trinene for at gøre dette.
TRIN:
- I begyndelsen skal du, på samme måde som i det tidligere eksempel, gå til Udvikler på fanen på farvebåndet.
- Klik derefter på Visual Basic eller tryk på Alt + F11 for at åbne den Visual Basic-editor .
- I stedet for dette, for at åbne Visual Basic-editor , skal du blot højreklikke på arket og vælge Se kode .
- Skriv nu VBA-koden ned.
VBA-kode:
Sub example2_match() Sheets("Result").Range("C5").Value = WorksheetFunction.Match(Sheets("Result").Range("C5").Value, Sheets("Data").Range("D5:D10"), 0) End Sub
- Derefter skal du køre koden ved at trykke på F5 eller ved at klikke på Kør under knap.
- Og resultatet findes i " Resultat " ark.
Læs mere: Sådan matches data i Excel fra 2 regneark
Lignende læsninger
- Summering af alle match med VLOOKUP i Excel (3 nemme måder)
- Sådan finder du Case Sensitive Match i Excel ( 6 formler)
- Sådan matcher du navne i Excel, hvor stavemåden er forskellig (8 metoder)
3. Excel VBA-sløjfer for at få matchede værdier i området
Hvis vi ønsker flere mærker til at matche værdien, vil vi bruge VBA-loops til dette. Vi bruger det samme datasæt som før. Nu ønsker vi matchpositionen i kolonnen G , og de mærker, som vi ønsker at finde et match, står i kolonnen F . Lad os se trinene nedad.
TRIN:
- Først skal du gå til Udvikler fanebladet.
- For det andet, for at åbne den Visual Basic-editor , klik på Visual Basic eller tryk på Alt + F11 .
- Eller du kan også bare højreklikke på arket og vælge Se kode .
- Dette vil åbne Visual Basic-editor .
- Skriv nu koden der.
VBA-kode:
Sub example3_match() Dim i As Integer For i = 5 To 8 Cells(i, 7).Value = WorksheetFunction.Match(Cells(i, 6).Value, Range("D5:D10"), 0) Next i End Sub
- Derefter skal du trykke på F5 eller ved at klikke på Kør under knappen vil køre koden.
- Og du vil kunne se resultatet i kolonnen G .
🔎 Hvordan fungerer VBA-koden?
For i = 5 Til 8
: Det betyder, at vi ønsker, at løkken skal starte med række 5 og slutter med række 8 .Celler(i, 7).Værdi
: Herved gemmes værdien af de resulterende placeringer i hver række fra 5 til 8 rækker i kolonne G som er kolonnenummer 7 .Match(Cells(i, 6).Value, Range("D5:D10"), 0)
: Celler kan matches ved hjælp af Match funktion (i, 6). Værdier søger efter hver opslagsværdi, der findes i rækker 5 via 8 af den 6. kolonne. Derefter søges i array D5:D10 på et excel-ark, hvor der er data til rådighed.
Læs mere: Excel finder matchende værdier i to kolonner
Ting at huske på
- Hvis matchtypen mangler eller ikke er angivet, antages det at være 1 .
- Hvis der ikke findes nogen match, vil et relateret excel-felt være tomt.
- Opslagsværdien kan være en numerisk, tegn- eller logisk data eller en cellehenvisning til en mængde, tekst eller logisk betydning.
Konklusion
Ovenstående metoder vil hjælpe dig med at matche værdier i et område i Excel VBA. Håber dette vil hjælpe dig! Hvis du har spørgsmål, forslag eller feedback, så lad os vide det i kommentarfeltet. Eller du kan kaste et blik på vores andre artikler i ExcelWIKI.com blog!