Cuprins
În MS Excel trebuie să căutăm sau să găsim frecvent valori în setul de date. Poate fi vorba de găsirea datelor în rânduri sau în coloană. Din fericire, Excel oferă diferite funcții și formule pentru a efectua aceste tipuri de sarcini. Cu ajutorul codului Excel VBA, putem automatiza această sarcină de căutare sau de găsire a valorilor. În acest articol, vom vedea diferite modalități de a găsiți valoarea într-o coloană în Excel VBA.
Descărcați caietul de practică
Găsește valoarea în Column.xlsm6 Exemple de VBA pentru a găsi valoarea în coloană în Excel
Să avem un set de date de informații despre produse cu informațiile lor. ID produs , Marca , Model , Preț unitar , și ID-ul comenzii Sarcina noastră este să aflăm care este potrivirea... ID-ul comenzii Acum sarcina noastră este să aflăm care este ID-ul comenzii asociate cu ID produs .
1. Găsiți valoarea în coloană folosind funcția VBA Find
În primul exemplu, vom folosi Funcția de căutare în VBA pentru a găsi o valoare într-o coloană.
📌 Pași:
- Mergeți la numele foii din partea de jos a acesteia.
- Apăsați butonul din dreapta al mouse-ului.
- Alegeți Vezi codul din listă.
- Se deschide fereastra VBA, apoi selectați Modul de la Introduceți opțiunea
- Acum scrieți următorul cod în consola VBA
Sub Find_Value() Dim ProductID As Range 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
- Acum inserați un buton în setul de date.
- Mergeți la Dezvoltator tab.
- Alegeți Buton ( Controlul formularului ) de la Introduceți secțiune.
- Dați un nume oarecare butonului, de exemplu, eu îl dau ca fiind Căutare .
- Atribuiți codul acestui buton.
- Selectați butonul și apăsați butonul din dreapta al mouse-ului.
- Alegeți Atribuire macro din listă.
- Selectați macroul dorit din lista de Atribuire macro fereastră.
- Apoi, apăsați OK .
- Acum scrieți orice ID produs și faceți clic pe butonul Căutare buton.
Vedem că nu se afișează nicio potrivire, deoarece acest număr de produs nu se află pe listă.
- Puneți altul ID produs și apăsați din nou tasta Căutare buton.
Obținem numărul de ordine pentru numărul dat ID produs .
Citește mai mult: Cum să obțineți valoarea celulei după rând și coloană în Excel VBA
2. VBA pentru a găsi valoarea din diferite foi de calcul
Acum, în această secțiune, vom face același lucru de mai sus, dar pentru foi de calcul diferite. Să presupunem că informațiile despre produsul nostru se află în Foaie 2 , iar caseta de căutare se află în Foaia 3 Acum vom scrie codul VBA astfel încât să putem căuta ID-ul comenzii folosind ID-ul produsului din Foaia 3 .
Fișa 2:
Foaie3:
📌 Pași:
- Urmați aceiași pași de la pasul 1 la pasul 2 din metoda anterioară pentru a deschide consola VBA
- Acum scrieți următorul cod în consola 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
- Acum inserați din nou un buton ca cel precedent.
- Apoi atribuiți codul macro la buton.
- Introduceți orice ID produs și faceți clic pe butonul Executați buton
Citește mai mult: Căutarea valorii în coloană și returnarea valorii unei alte coloane în Excel
3. Găsiți și marcați valoarea în coloană
Să vedem cum putem afla valorile dintr-o coloană marcându-le. Pentru aceasta, să presupunem același set de date de mai sus cu o coloană suplimentară numită Starea livrării Acum, sarcina noastră este să marcăm valorile din Starea livrării coloană care sunt În așteptare .
📌 Pași:
- Urmați același pas de la pasul 1 la pasul 2 ca și metoda anterioară pentru a deschide consola VBA
- Acum scrieți următorul cod în consola 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 = rngFind_Value.Address rngFind_Value.Font.Color = vbRed Do SetrngFind_Value = rng_Find.FindNext(rngFind_Value) rngFind_Value.Font.Color = vbRed Bucla până când rngFind_Value.Address = strAddress_First End If End Sub
- Acum mergeți la foaia de calcul și rulați codul.
- Vedeți rezultatul din tabel.
Citește mai mult: Cum să găsiți cea mai mare valoare în coloana Excel (4 metode)
4. VBA pentru a găsi valori în coloană folosind caractere joker
În cele din urmă, vom vedea cum putem căuta sau găsi valori în coloane folosind caractere wildcard în Excel VBA. Din nou, vom folosi același set de date de mai sus pentru această metodă. Sarcina noastră este de a afla prețurile produselor folosind modelul lor. Am putea fie să tastăm numele complet, fie ultimele/primele caractere ale ID produs .
📌 Pași:
- Urmați același pas de la pasul 1 la pasul 2 ca și metoda anterioară pentru a deschide consola VBA
- Acum scrieți următorul cod în consola 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
- Din nou, inserați un buton ca cel precedent.
- Acum atribuiți codul macro la buton.
- Acum introduceți orice parțială ID produs și apăsați butonul Executați buton.
Citește mai mult: Cum să găsiți cea mai mică valoare într-o coloană Excel (6 moduri)
5. Excel VBA pentru a găsi valoarea maximă în coloană
Aici, dorim să găsim valoarea maximă a unei coloane folosind codul VBA.
📌 Pași:
- Vrem să aflăm prețul maxim.
- Acum, introduceți următorul cod VBA într-un nou modul.
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
- Apoi, apăsați butonul F5 pentru a rula codul VBA.
- The Intrare apare caseta de dialog.
- Selectați intervalul din setul de date.
- În cele din urmă, apăsați butonul OK buton.
Putem vedea că valoarea maximă este afișată în caseta de dialog.
6. Excel VBA pentru a găsi ultima valoare din coloană
Aici, dorim să cunoaștem valoarea ultimului rând sau a ultimei celule dintr-o anumită coloană. De exemplu, dorim să cunoaștem ultimul produs din coloana Produs
📌 Pași:
- Introduceți datele VBA codul de mai jos pe modul.
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
- Apoi, rulați codul apăsând tasta F5 buton.
Ultima valoare este afișată în caseta de dialog.
Citește mai mult: Cum să găsiți ultima apariție a unei valori într-o coloană în Excel (5 metode)
Lucruri de reținut
Câteva erori frecvente:
- Eroare: O valoare la un moment dat. GĂSIȚI poate găsi doar o singură valoare la un moment dat.
- Eroare: #NA în VLOOKUP Dacă valoarea căutată nu este prezentă în setul de date dat, atunci această funcție va returna acest lucru #NA eroare.
- Range("Cell_Number").ClearContents este utilizată pentru a șterge valoarea anterioară din celulă. În caz contrar, valoarea anterioară trebuie eliminată manual.
Concluzie
Acestea sunt câteva modalități de a găsi valori în coloane folosind codul VBA în Excel. Am prezentat toate metodele cu exemplele lor respective, dar pot exista multe alte iterații. Am discutat, de asemenea, elementele de bază ale funcțiilor utilizate. Dacă aveți orice altă metodă de a realiza acest lucru, atunci nu ezitați să o împărtășiți cu noi. Vizitați site-ul nostru web ExcelWIKI pentru mai multe articole interesante despre Excel.