Excel VBA per abbinare i valori in un intervallo (3 esempi)

  • Condividi Questo
Hugh West

Mentre si lavora con Microsoft Excel A volte abbiamo bisogno di trovare il valore corrispondente in un intervallo. Possiamo farlo facilmente con le funzioni di Excel. Ci sono funzioni in VBA che possiamo usare, ma nessuna di esse è uguale a PARTITA In questo articolo, impareremo come far corrispondere un valore in un intervallo con Excel VBA .

Scarica il quaderno di esercizi

Potete scaricare il libro di lavoro ed esercitarvi con loro.

VBA Abbina valore in intervallo.xlsm

Introduzione alla funzione Match di Excel VBA

Il Funzione di abbinamento in Excel VBA è un'utile funzione di ricerca costruita che, come VLOOKUP , HLOOKUP , e il INDICE Questa funzione è una funzione del foglio di lavoro che il programma utilizza. Poiché si tratta di una funzione del foglio di lavoro, i parametri della funzione Abbina sono simili a quelli della funzione del foglio di lavoro.

3 esempi di Excel VBA per abbinare i valori in un intervallo

1. Corrispondenza di valori in un intervallo con la funzione VBA Match in Excel

Per utilizzare la funzione Match di Excel VBA Per trovare il valore di corrispondenza in un intervallo, utilizzeremo il seguente set di dati. Il set di dati contiene i nomi di alcuni studenti nelle colonne C , i loro voti su una specifica materia nella colonna D e il numero di serie di ogni studente nella colonna B Ora, supponiamo di voler trovare la posizione della corrispondenza nella cella G5 di un marchio specifico e il marchio a cui vogliamo corrispondere si trova nella cella F5 .

Dimostriamo la procedura per trovare i valori corrispondenti in un intervallo utilizzando la funzione Match di excel VBA .

FASI:

  • Per prima cosa, andare alla pagina Sviluppatore dalla barra multifunzione.
  • In secondo luogo, fare clic su Visual Basic per aprire il Editor Visual Basic dove scriveremo il codice. Oppure, premere Alt + 11 per aprire il Editor Visual Basic .

  • Un altro modo per aprire Editor Visual Basic è solo per fare clic con il tasto destro del mouse sul foglio di lavoro e fare clic su Visualizza il codice .

  • In questo modo si aprirà la finestra Editor Visual Basic Ora scrivete il codice lì.

Codice VBA:

 Sub esempio1_match() Range("G5").Value = WorksheetFunction.Match(Range("F5").Value, Range("D5:D10"), 0) End Sub 
  • Successivamente, per eseguire il codice, premere il tasto F5 sulla tastiera o fare clic sul pulsante Rub Sub pulsante.

  • Infine, si può vedere che la corrispondenza viene trovata nella posizione 5 .

🔎 Come funziona il codice VBA?

  • Sub esempio1_match() : Ciò significa che si definisce una sottoprocedura dando il nome alla macro.
  • Intervallo("G5").Valore : Vogliamo che l'output sia memorizzato nella cella G5 .
  • Foglio di lavoroFunzione : Utilizzando questo codice saremo in grado di accedere alle funzioni VBA.
  • Match(Range("F5").Value, Range("D5:D10"), 0) : Qui si usa la funzione Match in VBA. Poiché vogliamo prendere il valore dalla cella F5 e trovare la posizione nell'intervallo D5:D10 .
  • Fine Sub : Ciò significa che la procedura è terminata.

Per saperne di più: Excel VBA per abbinare le stringhe nelle colonne (5 esempi)

2. Usare Excel VBA per abbinare il valore di un altro foglio di lavoro

Possiamo trovare i valori corrispondenti nell'intervallo da un altro foglio di lavoro, usando la funzione VBA Match in Excel Supponiamo di avere un set di dati in un foglio denominato " Dati " e vogliamo il risultato nel nome del foglio " Risultato "E stiamo usando lo stesso set di dati. Ora seguiamo i passaggi per farlo.

FASI:

  • All'inizio, per lo stesso motivo dell'esempio precedente, si va alla voce Sviluppatore sulla barra multifunzione.
  • Quindi, fare clic su Visual Basic o premere Alt + F11 per aprire il Editor Visual Basic .
  • Al posto di questo, per aprire il file Editor Visual Basic è sufficiente fare clic con il tasto destro del mouse sul foglio e selezionare Codice .

  • Ora scrivete il codice VBA.

Codice VBA:

 Sub example2_match() Sheets("Result").Range("C5").Value = WorksheetFunction.Match(Sheets("Result").Range("C5").Value, Sheets("Data").Range("D5:D10"), 0) End Sub 
  • Quindi, eseguire il codice premendo il tasto F5 o facendo clic sul tasto Esegui Sub pulsante.

  • E il risultato si trova nella sezione " Risultato ".

Per saperne di più: Come abbinare i dati in Excel da 2 fogli di lavoro

Letture simili

  • Somma tutte le corrispondenze con VLOOKUP in Excel (3 modi semplici)
  • Come trovare una corrispondenza sensibile alle maiuscole e minuscole in Excel ( 6 formule)
  • Come abbinare i nomi in Excel quando l'ortografia è diversa (8 metodi)

3. Loop VBA di Excel per ottenere il valore corrispondente nell'intervallo

Se vogliamo che più segni corrispondano al valore, utilizzeremo i cicli VBA per questo. Utilizziamo lo stesso set di dati di prima. Ora vogliamo che la posizione della corrispondenza sia nella colonna G e i marchi di cui vogliamo trovare la corrispondenza sono nella colonna F Vediamo i gradini che scendono.

FASI:

  • Innanzitutto, dalla barra multifunzione, andare alla voce Sviluppatore scheda.
  • In secondo luogo, per aprire il Editor Visual Basic , fare clic su Visual Basic o premere Alt + F11 .
  • In alternativa, è sufficiente fare clic con il tasto destro del mouse sul foglio e selezionare Visualizza il codice .

  • In questo modo si aprirà la finestra Editor Visual Basic .
  • A questo punto, digitate il codice.

Codice VBA:

 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 
  • Dopodiché, premendo il tasto F5 o facendo clic sul tasto Esegui Sub eseguirà il codice.

  • E sarà possibile vedere il risultato nella colonna G .

🔎 Come funziona il codice VBA?

  • Per i = da 5 a 8 : Questo significa che vogliamo che il ciclo venga eseguito a partire dalla riga 5 e termina con la riga 8 .
  • Celle(i, 7).Valore : Questo salva il valore delle posizioni risultanti in ogni riga da 5 a 8 righe nella colonna G che è il numero della colonna 7 .
  • Match(Cells(i, 6).Value, Range("D5:D10"), 0) : Le celle possono essere abbinate utilizzando l'opzione Partita funzione (i, 6). I valori cercano ogni valore di Lookup trovato nelle righe 5 attraverso 8 del 6 Poi cercate nell'array D5:D10 su un foglio excel dove sono disponibili i dati.

Per saperne di più: Excel trova valori corrispondenti in due colonne

Cose da tenere a mente

  • Se il tipo di corrispondenza manca o non è specificato, si assume che sia 1 .
  • Se non viene rilevata alcuna corrispondenza, il campo excel correlato sarà vuoto.
  • Il valore di ricerca può essere un dato numerico, di carattere o logico, oppure un riferimento di cella a una quantità, un testo o un significato logico.

Conclusione

I metodi sopra descritti vi aiuteranno ad abbinare i valori in un intervallo in Excel VBA. Se avete domande, suggerimenti o commenti, fatecelo sapere nella sezione dei commenti. Oppure potete dare un'occhiata agli altri articoli della rubrica ExcelWIKI.com blog!

Hugh West è un istruttore e analista di Excel di grande esperienza con oltre 10 anni di esperienza nel settore. Ha conseguito una laurea in Contabilità e Finanza e un Master in Economia Aziendale. Hugh ha una passione per l'insegnamento e ha sviluppato un approccio didattico unico che è facile da seguire e capire. La sua conoscenza approfondita di Excel ha aiutato migliaia di studenti e professionisti in tutto il mondo a migliorare le proprie competenze ed eccellere nella propria carriera. Attraverso il suo blog, Hugh condivide le sue conoscenze con il mondo, offrendo esercitazioni gratuite su Excel e formazione online per aiutare le persone e le aziende a raggiungere il loro pieno potenziale.