Innehållsförteckning
Under arbetet med Microsoft Excel Ibland behöver vi hitta det värde som matchar ett intervall. Vi kan enkelt göra detta med Excel-funktioner. Det finns funktioner i VBA som vi kan använda, men ingen av dem är lika med MATCH . I den här artikeln ska vi lära oss hur man matchar ett värde i ett intervall med Excel VBA .
Ladda ner övningsboken
Du kan ladda ner arbetsboken och öva med dem.
VBA Matcha värde i intervallet.xlsmIntroduktion till Excel VBA matchfunktion
Matchfunktion i Excel VBA är en hjälpsam konstruerad uppslagsfunktion som, liksom VLOOKUP , HLOOKUP och INDEX Funktionen returnerar platsen för identiska eller jämförbara matchningar av de uppslagsvärden som erhålls i matriser eller en databas. Denna funktion är en arbetsbladfunktion som programmet använder. Eftersom det är en arbetsbladfunktion är parametrarna för funktionen Match likadana som för arbetsbladfunktionen.
3 exempel på Excel VBA för att matcha ett värde i ett intervall
1. Matcha värde i intervallet med VBA-matchfunktion i Excel
För att använda Excel VBA Match-funktionen För att hitta det matchande värdet i ett intervall ska vi använda följande dataset. Datasetetet har några elevernas namn i kolumnen C , sina betyg i ett visst ämne i en kolumn D , och varje elevs löpnummer i kolumn B Anta att vi nu vill hitta matchpositionen i cellen G5 av ett visst märke, och det märke som vi vill matcha finns i cell F5 .
Låt oss demonstrera hur du hittar matchande värden i ett intervall med hjälp av Excel VBA-funktionen Match. .
STEG:
- Gå först till Utvecklare i bandet.
- För det andra klickar du på Visual Basic för att öppna Redigerare för Visual Basic där vi skriver koden. Eller tryck på Alt + 11 för att öppna Redigerare för Visual Basic .
- Ett annat sätt att öppna Redigerare för Visual Basic är bara att högerklicka på på arbetsbladet och klicka på Visa kod .
- Detta kommer att öppna Redigerare för Visual Basic Skriv koden där.
VBA-kod:
Sub example1_match() Range("G5").Value = WorksheetFunction.Match(Range("F5").Value, Range("D5:D10"), 0) End Sub
- För att köra koden trycker du sedan på F5 tangenten på tangentbordet eller klicka på Rub Sub knapp.
- Slutligen kan du se att matchningen finns i positionen 5 .
🔎 Hur fungerar VBA-koden?
Sub example1_match()
: Detta innebär att vi definierar ett underförfarande genom att ge makronamnet.Range("G5").Värde
: Vi vill att resultatet ska lagras i cellen G5 .ArbetsbladFunktion
: Genom att använda den här koden får vi tillgång till VBA-funktionerna.
Match(Range("F5").Value, Range("D5:D10"), 0)
: Här använder vi funktionen Match i VBA. Eftersom vi vill ta värdet från cellen F5 och ta reda på positionen i intervallet D5:D10 .Slutar under
: Detta innebär att vi avslutar förfarandet.
Läs mer: Excel VBA för att matcha strängar i en kolumn (5 exempel)
2. Använd Excel VBA för att matcha ett värde från ett annat arbetsblad
Vi kan hitta matchningsvärden i intervallet från ett annat arbetsblad, med hjälp av VBA Match-funktionen på Excel . Anta att vi har ett dataset i ett ark som heter " Uppgifter " och vi vill ha resultatet i arknamnet " Resultat "Vi använder samma dataset. Låt oss följa stegen för att göra detta.
STEG:
- I början, på samma sätt som i det tidigare exemplet, ska du gå till Utvecklare på bandet.
- Klicka sedan på Visual Basic eller tryck på Alt + F11 för att öppna Redigerare för Visual Basic .
- Istället kan du öppna Redigerare för Visual Basic högerklicka på arket och välj Visa kod .
- Skriv ner VBA-koden.
VBA-kod:
Sub example2_match() Sheets("Result").Range("C5").Value = WorksheetFunction.Match(Sheets("Result").Range("C5").Value, Sheets("Data").Range("D5:D10"), 0) End Sub
- Kör sedan koden genom att trycka på F5 eller genom att klicka på Kör underordnat knapp.
- Och resultatet finns i " Resultat " ark.
Läs mer: Hur man matchar data i Excel från två arbetsblad
Liknande läsningar
- Summera alla matchningar med VLOOKUP i Excel (3 enkla sätt)
- Hur man hittar en match som är skiftlägeskänslig i Excel (6 formler)
- Hur man matchar namn i Excel där stavningen skiljer sig åt (8 metoder)
3. Excel VBA-slingor för att få ett matchat värde i intervallet
Om vi vill att flera markeringar ska matcha värdet använder vi VBA-slingor för detta. Vi använder samma dataset som tidigare. Nu vill vi att matchpositionen i kolumnen G , och de märken som vi vill hitta matchningen finns i kolumnen F . Låt oss se trapporna ner.
STEG:
- För det första går du från bandet till Utvecklare fliken.
- För det andra, för att öppna Redigerare för Visual Basic , klicka på Visual Basic eller tryck på Alt + F11 .
- Eller så högerklickar du på arket och väljer Visa kod .
- Detta kommer att öppna Redigerare för Visual Basic .
- Skriv in koden där.
VBA-kod:
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
- Därefter trycker du på F5 eller genom att klicka på Kör underordnat knappen kommer att köra koden.
- Och du kommer att kunna se resultatet i kolumnen G .
🔎 Hur fungerar VBA-koden?
För i = 5 till 8
: Detta innebär att vi vill att slingan ska börja med raden 5 och avslutas med en rad 8 .Cells(i, 7).Värde
: Detta sparar värdet av de resulterande platserna i varje rad från 5 till 8 rader i kolumnen G som är kolumnnummer 7 .Match(Cells(i, 6).Value, Range("D5:D10"), 0)
: Celler kan matchas med hjälp av Match funktion (i, 6). Värden söker efter varje Lookup-värde som hittas i rader. 5 via 8 av den 6:e kolumn. Sökes sedan i matrisen D5:D10 på ett Excel-ark där uppgifter finns tillgängliga.
Läs mer: Excel hittar matchande värden i två kolumner
Saker att tänka på
- Om matchningstypen saknas eller inte anges antas den vara 1 .
- Om ingen matchning upptäcks kommer ett relaterat excel-fält att vara tomt.
- Uppslagsvärdet kan vara en numerisk, tecken- eller logisk data eller en cellreferens till en kvantitet, text eller logisk betydelse.
Slutsats
Ovanstående metoder hjälper dig att matcha värden i ett intervall i Excel VBA. Hoppas att det här hjälper dig! Om du har några frågor, förslag eller feedback kan du berätta det för oss i kommentarsfältet. Du kan också ta en titt på våra andra artiklar i ExcelWIKI.com blogg!