Excel VBA na vyhľadávanie hodnoty v stĺpci (6 vhodných príkladov)

  • Zdieľajte To
Hugh West

V programe MS Excel často potrebujeme vyhľadávať alebo nájsť hodnoty v súbore údajov. Môže ísť o vyhľadávanie údajov v riadkoch alebo v stĺpcoch. Našťastie Excel poskytuje rôzne funkcie a vzorce na vykonávanie takýchto úloh. Pomocou kódu Excel VBA môžeme túto úlohu vyhľadávania alebo hľadania hodnôt automatizovať. V tomto článku si ukážeme rôzne spôsoby, ako nájsť hodnotu v stĺpci v programe Excel VBA.

Stiahnite si cvičebnicu

Nájsť hodnotu v stĺpci.xlsm

6 príkladov VBA na vyhľadávanie hodnoty v stĺpci v programe Excel

Majme súbor údajov s informáciami o produktoch s ich ID produktu , Značka , Model , Jednotková cena a ID objednávky Našou úlohou je zistiť zhodu ID objednávky Teraz je našou úlohou zistiť ID objednávky spojené s ID produktu .

1. Vyhľadanie hodnoty v stĺpci pomocou funkcie VBA Find

V prvom príklade použijeme Funkcia Nájsť vo VBA na vyhľadanie hodnoty v stĺpci.

📌 Kroky:

  • Prejdite na názov hárku v dolnej časti hárku.
  • Stlačte pravé tlačidlo myši.
  • Vyberte si Zobraziť kód možnosť zo zoznamu.

  • Otvorí sa okno VBA. Potom vyberte Modul z Vložte možnosť

  • Teraz napíšte nasledujúci kód do konzoly 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 

  • Teraz vložte tlačidlo do súboru údajov.
  • Prejdite na Vývojár tab.
  • Vyberte si Tlačidlo ( Ovládanie formulára ) z Vložte sekcia.

  • Uveďte ľubovoľný názov tlačidla. Napríklad ja ho uvádzam ako Vyhľadávanie .

  • Priradenie kódu tomuto tlačidlu.
  • Vyberte tlačidlo a stlačte pravé tlačidlo myši.
  • Vyberte si Priradenie makra zo zoznamu.

  • Vyberte požadované makro z ponuky Priradenie makra okno.
  • Potom stlačte tlačidlo OK .

  • Teraz napíšte ľubovoľný ID produktu a kliknite na Vyhľadávanie tlačidlo.

Vidíme, že sa nezobrazuje žiadna zhoda, pretože toto číslo výrobku sa nenachádza v zozname.

  • Vložte iný ID produktu a znovu stlačte tlačidlo Vyhľadávanie tlačidlo.

Získame číslo objednávky pre daný ID produktu .

Prečítajte si viac: Ako získať hodnotu bunky podľa riadku a stĺpca v programe Excel VBA

2. VBA na vyhľadávanie hodnôt z rôznych pracovných hárkov

Teraz v tejto časti urobíme to isté, čo sme uviedli vyššie, ale pre rôzne pracovné hárky. Predpokladajme, že naše informácie o produkte sú v List 2 a vyhľadávacie pole sa nachádza v List 3 Teraz napíšeme kód VBA, aby sme mohli vyhľadať ID objednávky pomocou ID produktu z List 3 .

List 2:

List3:

📌 Kroky:

  • Postupujte podľa rovnakých krokov z krok 1 na krok 2 z predchádzajúcej metódy na otvorenie konzoly VBA
  • Teraz napíšte nasledujúci kód do konzoly 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 

  • Teraz opäť vložte tlačidlo ako v predchádzajúcom prípade.
  • Potom priraďte kód makra k tlačidlu.

  • Zadajte ľubovoľný ID produktu a kliknite na Vykonajte tlačidlo

Prečítajte si viac: Vyhľadanie hodnoty v stĺpci a vrátenie hodnoty iného stĺpca v programe Excel

3. Vyhľadanie a označenie hodnoty v stĺpci

Pozrime sa, ako môžeme zistiť hodnoty zo stĺpca ich označením. Na tento účel predpokladajme rovnaký súbor údajov ako vyššie s ďalším stĺpcom s názvom Stav dodávky Teraz je našou úlohou označiť hodnoty v Stav dodávky stĺpec, ktoré sú Čaká sa na .

📌 Kroky:

  • Postupujte podľa rovnakého kroku z krok 1 na krok 2 ako predchádzajúca metóda na otvorenie konzoly VBA
  • Teraz napíšte nasledujúci kód do konzoly 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 Loop Until rngFind_Value.Address = strAddress_First End If End Sub 

  • Teraz prejdite na pracovný hárok a spustite kód.
  • Pozrite si výstup v tabuľke.

Prečítajte si viac: Ako nájsť najvyššiu hodnotu v stĺpci programu Excel (4 metódy)

4. VBA na vyhľadávanie hodnôt v stĺpci pomocou zástupných znakov

Na záver si ukážeme, ako môžeme v programe Excel VBA vyhľadávať alebo nájsť hodnoty v stĺpcoch pomocou zástupných znakov. Na túto metódu opäť použijeme rovnaký súbor údajov ako vyššie. Našou úlohou je zistiť ceny výrobkov pomocou ich modelu. Mohli by sme zadať buď celý názov, alebo posledné/prvé znaky ID produktu .

📌 Kroky:

  • Postupujte podľa rovnakého kroku z krok 1 na krok 2 ako predchádzajúca metóda na otvorenie konzoly VBA
  • Teraz napíšte nasledujúci kód do konzoly 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 

  • Opäť vložte tlačidlo ako v predchádzajúcom prípade.
  • Teraz priraďte kód makra k tlačidlu.

  • Teraz zadajte akúkoľvek čiastočnú ID produktu a stlačte tlačidlo Vykonajte tlačidlo.

Prečítajte si viac: Ako nájsť najnižšiu hodnotu v stĺpci programu Excel (6 spôsobov)

5. Excel VBA na zistenie maximálnej hodnoty v stĺpci

Tu chceme pomocou kódu VBA zistiť maximálnu hodnotu stĺpca.

📌 Kroky:

  • Chceme zistiť maximálnu cenu.

  • Teraz vložte nasledujúci kód VBA do nového modulu.
 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 

  • Potom stlačte tlačidlo F5 spustiť kód VBA.
  • Stránka Vstup Zobrazí sa dialógové okno.
  • Vyberte rozsah zo súboru údajov.

  • Nakoniec stlačte tlačidlo OK tlačidlo.

V dialógovom okne sa zobrazí maximálna hodnota.

6. Excel VBA na nájdenie poslednej hodnoty v stĺpci

Tu chceme zistiť hodnotu posledného riadku alebo bunky konkrétneho stĺpca. Napríklad chceme zistiť posledný výrobok zo stĺpca Product

📌 Kroky:

  • Zadajte VBA nižšie uvedený kód na module.
 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 

  • Potom spustite kód stlačením tlačidla F5 tlačidlo.

V dialógovom okne sa zobrazí posledná hodnota.

Prečítajte si viac: Ako nájsť posledný výskyt hodnoty v stĺpci v programe Excel (5 metód)

Čo si treba zapamätať

Niektoré časté chyby:

  • Chyba: Jedna hodnota za druhou. Pretože NÁJSŤ Metóda dokáže nájsť vždy len jednu hodnotu.
  • Chyba: #NA na stránke VLOOKUP Ak sa hľadaná hodnota nenachádza v danom súbore údajov, funkcia vráti túto hodnotu #NA chyba.
  • Range("Cell_Number").ClearContents časť sa používa na vymazanie predchádzajúcej hodnoty z bunky. V opačnom prípade je potrebné predchádzajúcu hodnotu odstrániť ručne.

Záver

Toto je niekoľko spôsobov, ako nájsť hodnoty v stĺpcoch pomocou kódu VBA v programe Excel. Ukázal som všetky metódy s príslušnými príkladmi, ale môže existovať mnoho ďalších iterácií. Rozobral som aj základy použitých funkcií. Ak máte nejaký iný spôsob, ako to dosiahnuť, potom sa s nami oň neváhajte podeliť. Navštívte našu webovú stránku ExcelWIKI pre ďalšie zaujímavé články o programe Excel.

Hugh West je veľmi skúsený tréner a analytik Excelu s viac ako 10-ročnými skúsenosťami v tomto odvetví. Má bakalársky titul v odbore účtovníctvo a financie a magisterský titul v odbore Business Administration. Hugh má vášeň pre vyučovanie a vyvinul jedinečný vyučovací prístup, ktorý sa dá ľahko sledovať a pochopiť. Jeho odborné znalosti Excelu pomohli tisíckam študentov a profesionálov na celom svete zlepšiť svoje zručnosti a vyniknúť vo svojej kariére. Hugh sa prostredníctvom svojho blogu delí o svoje znalosti so svetom a ponúka bezplatné výukové programy Excelu a online školenia, ktoré jednotlivcom a firmám pomôžu naplno využiť ich potenciál.