Sommario
In MS Excel è frequente la necessità di cercare o trovare valori nel set di dati, ad esempio nelle righe o nelle colonne. Fortunatamente, Excel mette a disposizione diverse funzioni e formule per svolgere questo tipo di attività. Con l'aiuto del codice VBA di Excel, è possibile automatizzare questo compito di ricerca o di individuazione dei valori. In questo articolo vedremo diversi modi per trovare il valore in una colonna in Excel VBA.
Scarica il quaderno di esercizi
Trova valore in Colonna.xlsm6 esempi di VBA per trovare il valore in una colonna in Excel
Disponiamo di un set di dati di informazioni sui prodotti con il loro ID prodotto , Marchio , Modello , Prezzo unitario , e ID ordine Il nostro compito è quello di scoprire l'accoppiata ID ordine Ora il nostro compito è quello di scoprire il ID ordine associato al ID prodotto .
1. Trovare un valore in una colonna utilizzando la funzione Find di VBA
Nel primo esempio, si utilizzerà il metodo Funzione Trova in VBA per trovare un valore in una colonna.
📌 Passi:
- Andare al nome del foglio in fondo al foglio.
- Premere il tasto destro del mouse.
- Scegliere il Visualizza il codice dall'elenco.
- Si apre la finestra VBA, quindi selezionare Modulo dal Inserire opzione
- Ora scrivete il seguente codice nella console VBA
Sub Find_Value() Dim ProductID As Range("D4").ClearContents Set ProductID = Range("B8:B19").Find(What:=Range("C4").Value, _ LookIn:=xlValues, LookAt:=xlWhole) If Not ProductID Is Nothing Then Range("E5").Value = ProductID.Offset(, 4).Value Else MsgBox "No Matched Data Found !!" End If End Sub
- Inserire ora un pulsante nel dataset.
- Vai al sito Sviluppatore scheda.
- Scegliere Pulsante ( Controllo della forma ) dal Inserire sezione.
- Dare un nome qualsiasi al pulsante, ad esempio io lo sto dando come Ricerca .
- Assegnare il codice a questo pulsante.
- Selezionare il pulsante e premere il tasto destro del mouse.
- Scegliere Assegnazione di macro dall'elenco.
- Selezionate la macro desiderata dal menu Assegnazione di macro finestra.
- Quindi, premere OK .
- Ora scrivete qualsiasi ID prodotto e fare clic sul pulsante Ricerca pulsante.
Possiamo vedere che non c'è nessuna corrispondenza, in quanto questo numero di prodotto non è presente nell'elenco.
- Mettetene un'altra ID prodotto e premere nuovamente il tasto Ricerca pulsante.
Otteniamo il numero d'ordine per il dato ID prodotto .
Per saperne di più: Come ottenere il valore di una cella per riga e colonna in Excel VBA
2. VBA per trovare il valore da diversi fogli di lavoro
In questa sezione, faremo la stessa cosa di cui sopra, ma per fogli di lavoro diversi. Supponiamo che le nostre informazioni sul prodotto siano in Foglio 2 e la casella di ricerca è in Scheda 3 Ora scriviamo il codice VBA in modo da poter cercare l'ID dell'ordine utilizzando l'ID del prodotto da Scheda 3 .
Scheda 2:
Foglio3:
📌 Passi:
- Seguire la stessa procedura da passo 1 a passo 2 del metodo precedente per aprire la console VBA
- Scrivete ora il seguente codice nella console VBA
Sub Find_Value_from_worksheets() Dim rng As Range Dim ProductID As String Dim rownumber As Long ProductID = Sheet3.Cells(4, 3) Set rng = Sheet2.Columns("B:B").Find(What:=ProductID, _ LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _ SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False) rownumber = rng.Row Sheet3.Cells(5, 5).Value = Sheet2.Cells(rownumber, 6).Value End Sub
- Ora inseriamo nuovamente un pulsante come quello precedente.
- Quindi assegnare il codice macro al pulsante.
- Inserire qualsiasi ID prodotto e fare clic sul pulsante Eseguire pulsante
Per saperne di più: Cercare un valore in una colonna e restituire il valore di un'altra colonna in Excel
3. Trovare e contrassegnare il valore nella colonna
Vediamo come scoprire i valori di una colonna contrassegnandoli. Per questo, assumiamo lo stesso set di dati di cui sopra con una colonna aggiuntiva denominata Stato di consegna Ora il nostro compito è quello di contrassegnare i valori nel campo Stato di consegna colonna che sono In attesa .
📌 Passi:
- Seguire la stessa procedura da passo 1 a passo 2 come il metodo precedente per aprire la console VBA
- Scrivete ora il seguente codice nella console VBA
Sub Find_and_Mark() Dim strAddress_First As String Dim rngFind_Value As Range Dim rngSrch As Range Dim rng_Find As Range Set rng_Find = ActiveSheet.Range("G1:G16") Set rngSrch = rng_Find.Cells(rng_Find.Cells.Count) Set rngFind_Value = rng_Find.Find("Pending", rngSrch, xlValues) If Not rngFind_Value Is Nothing Then strAddress_First.Address rngFind_Value.Font.Color = vbRed Do SetrngFind_Value = rng_Find.FindNext(rngFind_Value) rngFind_Value.Font.Color = vbRed Loop Until rngFind_Value.Address = strAddress_First End If End Sub
- Ora andate al foglio di lavoro ed eseguite il codice.
- Vedere il risultato nella tabella.
Per saperne di più: Come trovare il valore più alto in una colonna di Excel (4 metodi)
4. VBA per trovare i valori in una colonna utilizzando i caratteri jolly
Infine, vedremo come cercare o trovare valori nelle colonne utilizzando i caratteri jolly in Excel VBA. Anche in questo caso, utilizzeremo lo stesso set di dati di cui sopra per questo metodo. Il nostro compito è quello di trovare i prezzi dei prodotti utilizzando il loro modello. Potremmo digitare il nome completo o i caratteri ultimo/primo del prodotto. ID prodotto .
📌 Passi:
- Seguire la stessa procedura da passo 1 a passo 2 come il metodo precedente per aprire la console VBA
- Ora scrivete il seguente codice nella console VBA
Sub Find_Using_Wildcards() Set myerange = Range("B5:G16") Set ID = Range("D19") Set Price = Range("F20") Price.Value = Application.WorksheetFunction.VLookup _ ("*" & Range("D19") & "*", myerange, 4, False) End Sub
- Di nuovo, inserire un pulsante come quello precedente.
- Ora assegnate il codice macro al pulsante.
- Inserire ora qualsiasi parziale ID prodotto e premere il tasto Eseguire pulsante.
Per saperne di più: Come trovare il valore più basso in una colonna di Excel (6 modi)
5. Excel VBA per trovare il valore massimo in una colonna
In questo caso, vogliamo trovare il valore massimo di una colonna utilizzando il codice VBA.
📌 Passi:
- Vogliamo scoprire il prezzo massimo.
- Ora, inserite il seguente codice VBA in un nuovo modulo.
Sub Column_Max() Dim range_1 As Range Set range_1 = Application.InputBox(prompt:="Select Range", Type:=8) Max_Column = WorksheetFunction.Max(range_1) MsgBox Max_Column End Sub
- Quindi, premere il tasto F5 per eseguire il codice VBA.
- Il Ingresso viene visualizzata la finestra di dialogo
- Selezionare l'intervallo dal set di dati.
- Infine, premere il tasto OK pulsante.
Il valore massimo viene visualizzato nella finestra di dialogo.
6. Excel VBA per trovare l'ultimo valore nella colonna
Qui si vuole conoscere il valore dell'ultima riga o cella di una colonna specifica. Ad esempio, si vuole conoscere l'ultimo prodotto della colonna Prodotto
📌 Passi:
- Immettere il VBA il codice sottostante sul modulo.
Sub last_value() Dim L_Row As Long L_Row = Cells(Rows.Count, "B").End(xlUp).Row MsgBox Cells(L_Row, 2).Value End Sub
- Quindi, eseguire il codice premendo il tasto F5 pulsante.
L'ultimo valore viene visualizzato nella finestra di dialogo.
Per saperne di più: Come trovare l'ultima occorrenza di un valore in una colonna in Excel (5 metodi)
Cose da ricordare
Alcuni errori comuni:
- Errore: Un valore alla volta. Perché il TROVARE può trovare solo un valore alla volta.
- Errore: #NA in VLOOKUP Se il valore ricercato non è presente nell'insieme di dati dato, la funzione restituirà questo valore #NA errore.
- Intervallo("Numero_cella").CancellaContenuti viene utilizzata per cancellare il valore precedente dalla cella. Altrimenti, il valore precedente deve essere rimosso manualmente.
Conclusione
Questi sono alcuni modi per trovare i valori nelle colonne utilizzando il codice VBA in Excel. Ho mostrato tutti i metodi con i rispettivi esempi, ma ci possono essere molte altre iterazioni. Ho anche discusso i fondamenti delle funzioni utilizzate. Se avete qualche altro metodo per ottenere questo risultato, non esitate a condividerlo con noi. Visita il nostro sito web ExcelWIKI per altri interessanti articoli su Excel.