Come utilizzare la MATCH INDEX con Excel VBA

  • Condividi Questo
Hugh West

È possibile utilizzare le funzioni integrate del foglio di lavoro di Excel, come ad esempio la funzione Funzione VLOOKUP , il SCEGLIERE Funzione e il Funzione PMT anche nel codice e nelle applicazioni VBA. Infatti, la maggior parte delle applicazioni Excel è possibile accedere alle funzioni del foglio di lavoro e utilizzarle in VBA codice . Come usare INDEX & MATCH Funzioni del foglio di lavoro in codice VBA di Excel.

Perché si vuole usare Excel Foglio di lavoro funzioni nel vostro VBA codice Inoltre, non è necessario creare funzioni proprie, a meno che non sia necessario, se la funzionalità è già presente. In pratica, basta accedere alla funzione di cui si ha bisogno, dato che è già presente, e non c'è bisogno di reinventare la ruota.

Cominciamo con un esempio che mostra come usare MATCH INDICE con Excel VBA.

Utilizzeremo il INDICE e PARTITA Funzioni in Excel VBA codice Per creare un semplice UserForm, l'utente seleziona il nome dello studente e poi recupera e restituisce il sesso corrispondente e il colore degli occhi.

Scarica il quaderno di esercizi

Scaricate il libro di esercizi per esercitarvi.

INDEX-MATCH.xlsx

9 semplici passaggi per utilizzare INDEX e MATCH nel codice VBA

Il INDICE e PARTITA Le funzioni sono spesso utilizzate in combinazione nelle formule, per eseguire ricerche avanzate. Le due funzioni in combinazione offrono alcuni vantaggi rispetto a VLOOKUP .

Abbiamo già illustrato in dettaglio come utilizzare INDICE e PARTITA per eseguire ricerche avanzate in un file Excel libro di lavoro come formula di un foglio di lavoro, in un tutorial precedente Vedremo ora come utilizzare l'opzione INDICE e PARTITA Funzioni insieme in VBA codice al fine di conferire una funzionalità simile a quella del look up Modulo utente che stiamo per creare.

Passo 1: Applicare le funzioni INDEX e MATCH al dataset

  • Partiamo da due fogli nella nostra cartella di lavoro abilitata alle macro. Uno è un foglio vuoto chiamato Modulo utente , l'altro è un foglio chiamato Informazioni sullo studente , che contiene un intervallo che mostra i nomi degli studenti, il loro sesso corrispondente e il colore degli occhi come mostrato di seguito.

Ricordiamo rapidamente che se si volesse utilizzare l'opzione INDICE e PARTITA Funzioni in una formula, nel foglio di lavoro vero e proprio, per fornire il genere del nome dello studente che vogliamo cercare. Useremo la seguente formula:

=INDEX(B2:B31, MATCH("Diana Graham", A2:A31, 0))

  • Premendo CTRL-INVIO otteniamo il valore di Femmine, come genere, come mostrato di seguito.

Passo 2: Cambiare il nome della colonna B in NomiStudenti

  • Diamo ora un nome all'intervallo A2: A31 , Nomi degli studenti come mostrato di seguito.

  • Nascondere il Informazioni sullo studente facendo clic con il tasto destro del mouse e selezionando Nascondere. È una buona idea nascondere superficialmente i fogli di lavoro di back-end che contengono le informazioni che non si vuole che l'utente modifichi o veda.

Passo 3: aprire la finestra di Visual Basic

  • Ora, con il foglio UserForm attivato, andiamo su Sviluppatore> Codice> Visual Basic per aprire il file Editor Visual Basic (VBE) .
  • Una volta nel Interfaccia VBE andiamo su Insert, UserForm come mostrato di seguito.

Passo 4: Modifica delle proprietà e aggiunta di caselle di testo

  • Utilizzando il Proprietà Finestra , rinomineremo il nostro modulo in StudenteLookup , cambiare la didascalia in Cerca informazioni sullo studente, cambiare il campo Colore del dorso in azzurro e impostare l'altezza a 300 px e la larghezza a 350 Se la finestra delle proprietà non viene visualizzata, premere il tasto F4 sulla tastiera per visualizzarlo.

  • Ora inseriremo un'etichetta utilizzando il metodo Cassetta degli attrezzi (se per qualche motivo non riuscite a visualizzare la Casella degli strumenti, andate su Visualizza, Cassetta degli attrezzi ), cambiamo la didascalia in Scegliere uno studente e modifichiamo l'opzione Colore del dorso in questo caso è bianco. Impostiamo il font a Georgia , lo stile del carattere a audace , la dimensione del carattere a 12 , e il centro L'effetto speciale utilizzato sarà l'effetto 1- fmEffettoSpecialeRivelato come mostrato di seguito.

  • Ora inseriamo una casella combinata sotto l'etichetta. Nominiamo questa casella combinata cmdNomeStudente e per l'elemento Sorgente fila , tipo Nomi degli studenti.

  • Per vedere l'effetto dell'impostazione del parametro Sorgente fila della casella combinata, Cliccare la corsa Sub/Form utente pulsante .
  • Ora, grazie all'impostazione del parametro Sorgente fila all'intervallo nominato, quando l'utente fa clic sulla freccia a discesa nella UserForm, la casella combinata mostra automaticamente i nomi degli studenti dell'intervallo nominato, come mostrato di seguito.

  • Chiudere il modulo utente facendo clic sul pulsante di chiusura. Premere Alt-F11 per tornare al VBE .
  • Una volta tornati nel VBE aggiungere un'altra etichetta alla UserForm (sotto la casella combinata) e modificare l'opzione Didascalia a Genere e cambieremo l'opzione Colore del dorso in questo caso è bianco. Impostiamo il font a Georgia , lo stile del carattere a audace , la dimensione del carattere a 12 , e il centro L'effetto speciale utilizzato sarà l'effetto 1- fmEffettoSpecialeRivelato come mostrato di seguito.

  • Creare una casella di testo sotto il campo Genere etichetta , e nominarlo txtGender .
  • Aggiungi un'altra etichetta chiamata Occhio Colore e una casella di testo denominata txtColore occhi come mostrato di seguito. Utilizzo le stesse proprietà per l'etichetta e per le altre due etichette aggiunte in precedenza al modulo, in modo da garantire che l'etichetta Modulo utente ha un aspetto coerente.

  • Ora Selezionare tutti i controlli, aggiunti al file Modulo utente , finora utilizzando il tasto di controllo.

  • Centro orizzontalmente, come mostrato di seguito.

Per saperne di più: Come utilizzare la formula INDEX MATCH in Excel (9 esempi)

Letture simili

  • Excel INDEX MATCH Se la cella contiene testo
  • Come utilizzare la formula INDEX-MATCH in Excel per generare risultati multipli
  • Somma di più righe in Excel (3 modi)
  • Imparare la programmazione VBA di Excel e le macro (esercitazione gratuita - passo dopo passo)
  • 22 esempi di macro in Excel VBA

Passo 5: Aggiungere un pulsante dalla casella degli strumenti

  • Il prossimo, Aggiungi un pulsante al modulo utilizzando l'opzione Cassetta degli attrezzi . Cambiamento il Nome del pulsante per cmdLookUp , il Colore del dorso all'arancione chiaro, mantenere il Tahoma font e cambiamento lo stile a audace , infine, cambiare il parametro Didascalia del pulsante per Guarda su Studente Dettagli come mostrato di seguito.

Passo 6: inserimento del codice VBA

  • Cliccare con il tasto destro del mouse , il nuovo pulsante aggiunto e selezionare Vista Codice .

  • Inserite il seguente codice per l'evento click del pulsante:

 Dim a As Variant Dim b As Variant Dim c As Variant a = cmdStudentName.Value Sheets("StudentInformation").Activate If a = "" Then b = "" Let txtGender.Text = b c = "" Let txtEyeColour.Text = c Else b = Application.WorksheetFunction.Index(Sheets("StudentInformation").Range("B2:B31"), Application.WorksheetFunction.Match(a, Sheets("StudentInformation").Range("A2:A31"), 0)) c =Application.WorksheetFunction.Index(Sheets("StudentInformation").Range("C2:C31"), Application.WorksheetFunction.Match(a, Sheets("StudentInformation").Range("A2:A31"), 0)) Let txtEyeColour.Text = c End If 

Si inizia dichiarando tre variabili e assegnare il tipo di dati variante a questi tipi di dati dichiarati. Il tipo di dati variante è un buon tipo di dati per iniziare. Perché quando si lavora con foglio di lavoro funzioni Per questo motivo, quando si inizia, si utilizza il tipo di dati variant.

In seguito, è consigliabile utilizzare uno degli altri tipi di dati più specifici, come ad esempio intero o stringa. Per il codice più avanzato e lungo, il tipo di dati variant non utilizza la memoria in modo così efficiente come gli altri tipi di dati.

Variabile a ricavare il valore dall'opzione selezionata dall'utente nella casella combinata a discesa sul pannello di controllo. Modulo utente Se non c'è alcuna selezione, tutte le altre caselle di testo sono vuoto .

Se si seleziona il nome di uno studente dal menu combo scatola sul UserForm, allora la variabile b trae il valore utilizzando l'opzione INDICE Foglio di lavoro In combinazione con la funzione PARTITA Funzione nel VBA codice, come mostrato.

Cerca il valore utilizzando fondamentalmente la stessa sintassi della funzione del foglio di lavoro. Quando si utilizzano le funzioni del foglio di lavoro in VBA , il VBA IntelliSense in questo caso particolare non è molto intuitivo Pertanto, si raccomanda la familiarità con la sintassi ottenuta dalla conoscenza del foglio di lavoro. Variabile c disegna il valore utilizzando l'opzione INDICE Foglio di lavoro Funzione in combinazione con il PARTITA Funzione nel VBA quando l'utente seleziona un'opzione dalla casella combinata.

Variabile b ottiene valore dalla genere colonna nel foglio di lavoro, mentre variabile c ottiene il valore dalla colonna Colore occhi del foglio di lavoro.

La casella di testo del genere è popolata con b e la casella di testo del colore dell'occhio viene popolata con c il valore di questo parametro.

Per saperne di più: Eventi VBA di Excel (una guida completa)

Passo 7: inserire un pulsante di comando

  • Ora passate al foglio di lavoro chiamato Modulo utente nella cartella di lavoro. Formato come mostrato di seguito, e inserto l'immagine fornita da ExcelWIKI .

  • Vai a Sviluppatore> Controlli> Inserisci> Controlli ActiveX.

  • Inserire un pulsante come mostrato.

  • Con il pulsante selezionato, vai a Sviluppatore> Controlli> Proprietà .

  • Cambiamento il Nome del pulsante per cmdShowForm e il Didascalia a Ricerca Informazioni per gli studenti .

Passo 8: Visualizzazione del codice di ricerca

  • Cliccare con il tasto destro del mouse il pulsante e selezionare Visualizza il codice come mostrato di seguito.

  • Immettere il seguente codice:
 Private Sub cmdShowForm_Click() StudentLookup.Show End Sub 

Fase 9: Esposizione del risultato finale

  • Ritorno alla foglio di lavoro. Assicurarsi che la casella non selezionata Design Modalità .
  • Cliccare il pulsante per mostrare il modulo.

  • Selezionare il nome di uno studente utilizzando il tasto casella combinata Il codice restituirà automaticamente il sesso e il colore degli occhi dello studente.

Ricordatevi di salvare la cartella di lavoro come cartella di lavoro abilitata alle macro se non l'avete già fatto, ed ecco che utilizziamo INDEX & MATCH Funzioni del foglio di lavoro in Excel codice VBA per creare un modulo di ricerca.

Per saperne di più: Formula INDEX-MATCH di Excel per restituire più valori in orizzontale

Conclusione

Excel ha molti utili funzioni del foglio di lavoro che può essere utilizzato in VBA come, come, usando INDEX & MATCH Funzioni del foglio di lavoro in codice VBA di Excel. Queste funzioni consentono di estendere il VBA codice. Se si conosce già il loro funzionamento in uno standard Excel foglio di lavoro, allora la curva di apprendimento non è così grande adattando la conoscenza per VBA L'accesso alle funzioni del foglio di lavoro, nel proprio VBA codice può essere un vero e proprio risparmio di tempo, perché non si devono sviluppare funzioni personalizzate per funzionalità che sono già presenti.

Non esitate a commentare e a dirci se utilizzate le funzioni del foglio di lavoro nel vostro codice VBA e nelle vostre applicazioni.

Sezione di ripasso: verifica della comprensione

1) Impostare un semplice elenco nella colonna A di tre elementi: mandarini, carote e arance, quindi nella cella accanto a ciascun elemento della colonna B indicare se gli elementi della colonna A sono frutta o verdura. INDICE & PARTITA funzione di combinazione per indicare se le carote sono frutta o verdura.

2) Utilizzare questo set di dati di ESPN sui capi allenatori della NFL e sulla rispettiva squadra che allenano. Creare un modulo utente che consenta all'utente di inserire il nome di un determinato allenatore in una casella di testo. Poi, quando l'utente fa clic su Invia, far apparire la squadra che sta allenando in un'altra casella di testo. Utilizzare INDICE & PARTITA combinazione di funzioni del foglio di lavoro nel codice VBA.

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.