Tartalomjegyzék
Az MS Excelben gyakran kell keresnünk vagy megtalálnunk az értékeket az adathalmazban. Ez lehet az adatok keresése a sorokban vagy az oszlopban. Szerencsére az Excel különböző függvényeket és képleteket biztosít az ilyen típusú feladatok elvégzéséhez. Az Excel VBA kód segítségével automatizálhatjuk ezt a keresési vagy értékkeresési feladatot. Ebben a cikkben különböző módokat látunk a következőkhöz. érték keresése egy oszlopban Excel VBA-ban.
Gyakorlati munkafüzet letöltése
Érték keresése az oszlopban.xlsm6 példa a VBA-ra az Excel oszlopban lévő értékek kereséséhez
Legyen egy termékinformációkat tartalmazó adatkészletünk a következő adatokkal Termék azonosító , Márka , Modell , Egységár , és Megrendelés azonosítója A mi feladatunk, hogy kiderítsük a párosított Megrendelés azonosítója Most az a feladatunk, hogy kiderítsük a Megrendelés azonosítója a Termék azonosító .
1. Érték keresése az oszlopban a VBA Find funkció használatával
Az első példában a Keresés funkció a VBA-ban egy oszlopban lévő érték kereséséhez.
📌 Lépések:
- Menjen a lap alján lévő lap nevére.
- Nyomja meg az egér jobb gombját.
- Válassza ki a Kód megtekintése opciót a listából.
- Megnyílik a VBA ablak, majd válassza a Modul a Beillesztés opció
- Most írja a következő kódot a VBA-konzolba
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 End Sub
- Most Szúrjon be egy gombot az adatkészletbe.
- Menjen a Fejlesztő tab.
- Válassza ki a címet. Gomb ( Form Control ) a Beillesztés szakasz.
- Adjon bármilyen nevet a gombnak. Én például a következő nevet adom meg neki. Keresés .
- Rendelje hozzá a kódot ehhez a gombhoz.
- Jelölje ki a gombot, és nyomja meg az egér jobb gombját.
- Válassza ki a címet. Makró hozzárendelése a listáról.
- Válassza ki a kívánt makrót a Makró hozzárendelése ablak.
- Ezután nyomja meg a OK .
- Most írjon bármilyen Termék azonosító és kattintson a Keresés gomb.
Láthatjuk, hogy nincs találat, mivel ez a termékszám nem szerepel a listán.
- Másképp fogalmazva Termék azonosító és ismét nyomja meg a Keresés gomb.
Megkapjuk a rendelési számot az adott Termék azonosító .
Bővebben: Hogyan szerezzen cellák értékét sor és oszlop szerint az Excel VBA-ban
2. VBA értékek keresése különböző munkalapokról
Most ebben a részben ugyanezt fogjuk tenni, de különböző munkalapok esetében. Tegyük fel, hogy a termékinformációnk a következő helyen van Sheet 2 , és a keresőmező a 3. lap Most megírjuk a VBA kódot, hogy meg tudjuk keresni a rendelés azonosítóját a termék azonosítójának segítségével. 3. lap .
2. lap:
Sheet3:
📌 Lépések:
- Kövesse ugyanazokat a lépéseket a 1. lépés a címre. 2. lépés az előző módszerből a VBA konzol megnyitásához
- Most írja a következő kódot a VBA-konzolba
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
- Most ismét illessz be egy gombot, mint az előzőt.
- Ezután rendelje a makró kódot a gombhoz.
- Adjon meg bármilyen Termék azonosító és kattintson a Végrehajtás gomb
Bővebben: Érték keresése az oszlopban és egy másik oszlop értékének visszaadása az Excelben
3. Érték keresése és jelölése az oszlopban
Lássuk, hogyan tudunk értékeket találni egy oszlopból azáltal, hogy jelöljük őket. Ehhez tegyük fel ugyanazt a fenti adatkészletet egy további oszlopot, amelynek neve Szállítási státusz Most az a feladatunk, hogy az értékeket jelöljük meg a Szállítási státusz oszlop, amelyek Pending .
📌 Lépések:
- Kövesse ugyanazt a lépést a 1. lépés a címre. 2. lépés mint az előző módszer a VBA konzol megnyitásához
- Most írja a következő kódot a VBA-konzolba
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 Loop Until rngFind_Value.Address = strAddress_First End If End Sub
- Most lépjen a munkalapra, és futtassa a kódot.
- Lásd a kimenetet a táblázatban.
Bővebben: Hogyan lehet megtalálni a legmagasabb értéket az Excel oszlopban (4 módszer)
4. VBA értékek keresése oszlopban a jokerjelek használatával
Végül megnézzük, hogyan kereshetünk vagy találhatunk értékeket az oszlopokban a joker karakterek használatával az Excel VBA-ban. Ehhez a módszerhez ismét ugyanazt az adatkészletet fogjuk használni. A feladatunk az, hogy a termékárakat a modelljük segítségével keressük meg. Beírhatjuk a teljes nevet vagy az utolsó/első karaktereket a modellben. Termék azonosító .
📌 Lépések:
- Kövesse ugyanazt a lépést a 1. lépés a címre. 2. lépés mint az előző módszer a VBA konzol megnyitásához
- Most írja a következő kódot a VBA-konzolba
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
- Ismét illesszünk be egy gombot, mint az előzőnél.
- Most rendelje a makró kódját a gombhoz.
- Most adjon meg bármilyen részleges Termék azonosító és nyomja meg a Végrehajtás gomb.
Bővebben: Hogyan találja meg a legalacsonyabb értéket egy Excel oszlopban (6 mód)
5. Excel VBA az oszlopban lévő maximális érték kereséséhez
Itt egy oszlop maximális értékét szeretnénk megtalálni a VBA kód segítségével.
📌 Lépések:
- Szeretnénk megtudni a maximális árat.
- Most helyezze a következő VBA-kódot egy új modulba.
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
- Ezután nyomja meg a F5 gomb megnyomásával futtathatja a VBA kódot.
- A Bemenet párbeszédpanel jelenik meg.
- Válassza ki a tartományt az adatkészletből.
- Végül nyomja meg a OK gomb.
Láthatjuk, hogy a párbeszédpanelen a maximális érték jelenik meg.
6. Excel VBA az oszlop utolsó értékének megkeresése az oszlopban
Itt egy adott oszlop utolsó sorának vagy cellájának értékét szeretnénk megtudni. Például a Termék oszlop utolsó termékét szeretnénk megtudni.
📌 Lépések:
- Adja meg a VBA kódot a modulon.
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
- Ezután futtassa a kódot a F5 gomb.
Az utolsó érték jelenik meg a párbeszédpanelen.
Bővebben: Hogyan találja meg az Excel oszlopban lévő érték utolsó előfordulását (5 módszerek)
Emlékezetes dolgok
Néhány gyakori hiba:
- Hiba: Egyszerre csak egy érték. Mert a FIND módszer egyszerre csak egy értéket találhat.
- Hiba: #NA a oldalon. VLOOKUP Ha a keresett érték nincs jelen az adott adathalmazban, akkor ez a függvény ezt adja vissza. #NA hiba.
- Range("Cell_Number").ClearContents rész arra szolgál, hogy törölje az előző értéket a cellából. Ellenkező esetben az előző értéket manuálisan kell eltávolítani.
Következtetés
Ez néhány módja annak, hogy az Excelben VBA kód segítségével értékeket találjunk az oszlopokban. Az összes módszert bemutattam a hozzájuk tartozó példákkal együtt, de sok más iteráció is létezhet. A használt függvények alapjait is tárgyaltam. Ha van más módszere is, akkor kérjük, ossza meg velünk. Látogasson el weboldalunkra. ExcelWIKI további érdekes cikkekért az Excelről.