Excel VBA för att matcha ett värde i ett intervall (3 exempel)

  • Dela Detta
Hugh West

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.xlsm

Introduktion 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 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!

Hugh West är en mycket erfaren Excel-tränare och analytiker med över 10 års erfarenhet i branschen. Han har en kandidatexamen i redovisning och ekonomi och en magisterexamen i företagsekonomi. Hugh har en passion för undervisning och har utvecklat ett unikt undervisningssätt som är lätt att följa och förstå. Hans expertkunskap om Excel har hjälpt tusentals studenter och yrkesverksamma över hela världen att förbättra sina färdigheter och utmärka sig i sina karriärer. Genom sin blogg delar Hugh med sig av sin kunskap med världen, och erbjuder gratis Excel-handledning och onlineutbildning för att hjälpa individer och företag att nå sin fulla potential.