Excel VBA pro vyhledání hodnoty ve sloupci (6 vhodných příkladů)

  • Sdílet Toto
Hugh West

V aplikaci MS Excel často potřebujeme vyhledat nebo najít hodnoty v datovém souboru. Může se jednat o vyhledání dat v řádcích nebo sloupcích. Naštěstí Excel poskytuje různé funkce a vzorce pro provádění těchto druhů úloh. Pomocí kódu Excel VBA můžeme tuto úlohu vyhledávání nebo nalezení hodnot automatizovat. V tomto článku si ukážeme různé způsoby, jak najít hodnotu ve sloupci v aplikaci Excel VBA.

Stáhnout cvičebnici

Najít hodnotu ve sloupci.xlsm

6 příkladů VBA pro vyhledání hodnoty ve sloupci v aplikaci Excel

Mějme soubor dat s informacemi o produktech a jejich ID produktu , Značka , Model , Jednotková cena a ID objednávky . Naším úkolem je zjistit shodné ID objednávky Nyní je naším úkolem zjistit ID objednávky spojené s ID produktu .

1. Nalezení hodnoty ve sloupci pomocí funkce VBA Find

V prvním příkladu použijeme Funkce Najít ve VBA k nalezení hodnoty ve sloupci.

📌 Kroky:

  • Přejděte na název listu ve spodní části listu.
  • Stiskněte pravé tlačítko myši.
  • Vyberte si Zobrazit kód možnost ze seznamu.

  • Otevře se okno VBA. Poté vyberte možnost Modul z Vložte možnost

  • Nyní napište do konzoly VBA následující kód
 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 

  • Nyní vložte do datové sady tlačítko.
  • Přejděte na Vývojář tab.
  • Vyberte si Tlačítko ( Ovládání formuláře ) z Vložte sekce.

  • Uveďte libovolný název tlačítka. Jako já ho uvádím jako Vyhledávání .

  • Přiřaďte kód tomuto tlačítku.
  • Vyberte tlačítko a stiskněte pravé tlačítko myši.
  • Vyberte si Přiřazení makra ze seznamu.

  • Vyberte požadované makro z nabídky Přiřazení makra okno.
  • Pak stiskněte tlačítko OK .

  • Nyní napište libovolný ID produktu a klikněte na Vyhledávání tlačítko.

Vidíme, že se nezobrazuje žádná shoda, protože toto číslo výrobku není v seznamu.

  • Vložit další ID produktu a znovu stiskněte tlačítko Vyhledávání tlačítko.

Získáme číslo objednávky pro daný ID produktu .

Přečtěte si více: Jak získat hodnotu buňky podle řádku a sloupce v aplikaci Excel VBA

2. VBA pro vyhledání hodnoty z různých pracovních listů

Nyní v této části provedeme totéž, co výše, ale pro jiné pracovní listy. Předpokládejme, že naše informace o produktu jsou v položce List 2 a vyhledávací pole je v List 3 . Nyní napíšeme kód VBA tak, abychom mohli vyhledat ID objednávky pomocí ID produktu z List 3 .

List 2:

List3:

📌 Kroky:

  • Postupujte podle stejných kroků z krok 1 na krok 2 z předchozí metody pro otevření konzoly VBA
  • Nyní napište do konzoly VBA následující kód
 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 

  • Nyní opět vložte tlačítko jako v předchozím případě.
  • Poté tlačítku přiřaďte kód makra.

  • Zadejte libovolný ID produktu a klikněte na Provést tlačítko

Přečtěte si více: Vyhledání hodnoty ve sloupci a vrácení hodnoty jiného sloupce v aplikaci Excel

3. Vyhledání a označení hodnoty ve sloupci

Podívejme se, jak můžeme zjistit hodnoty ze sloupce jejich označením. Za tímto účelem předpokládejme stejný datový soubor jako výše s dalším sloupcem s názvem Stav dodávky . Nyní je naším úkolem označit hodnoty v položce Stav dodávky sloupce, které jsou Čeká se na .

📌 Kroky:

  • Postupujte podle stejného kroku z krok 1 na krok 2 jako předchozí metoda pro otevření konzoly VBA
  • Nyní napište do konzoly VBA následující kód
 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 Smyčka dokud rngFind_Value.Address = strAddress_First Konec If Konec Sub 

  • Nyní přejděte na pracovní list a spusťte kód.
  • Podívejte se na výstup v tabulce.

Přečtěte si více: Jak najít nejvyšší hodnotu ve sloupci aplikace Excel (4 metody)

4. VBA pro vyhledávání hodnot ve sloupci pomocí zástupných znaků

Nakonec se podíváme, jak můžeme v aplikaci Excel VBA vyhledávat nebo najít hodnoty ve sloupcích pomocí zástupných znaků. Pro tuto metodu opět použijeme stejnou datovou sadu jako výše. Naším úkolem je zjistit ceny výrobků pomocí jejich modelu. Mohli bychom zadat buď celý název, nebo poslední/první znaky daného ID produktu .

📌 Kroky:

  • Postupujte podle stejného kroku z krok 1 na krok 2 jako předchozí metoda pro otevření konzoly VBA
  • Nyní napište do konzoly VBA následující kód
 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ět vložte tlačítko jako v předchozím případě.
  • Nyní přiřaďte kód makra tlačítku.

  • Nyní zadejte libovolný částečný ID produktu a stiskněte tlačítko Provést tlačítko.

Přečtěte si více: Jak najít nejnižší hodnotu ve sloupci aplikace Excel (6 způsobů)

5. Excel VBA pro zjištění maximální hodnoty ve sloupci

Zde chceme pomocí kódu VBA zjistit maximální hodnotu sloupce.

📌 Kroky:

  • Chceme zjistit maximální cenu.

  • Nyní vložte následující 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 

  • Pak stiskněte tlačítko F5 spustit kód VBA.
  • Na stránkách Vstup Zobrazí se dialogové okno.
  • Vyberte rozsah ze souboru dat.

  • Nakonec stiskněte tlačítko OK tlačítko.

V dialogovém okně se zobrazí maximální hodnota.

6. Excel VBA pro vyhledání poslední hodnoty ve sloupci

Zde chceme znát hodnotu posledního řádku nebo buňky určitého sloupce. Například chceme znát poslední výrobek ze sloupce Product.

📌 Kroky:

  • Zadejte VBA níže uvedený kód na modulu.
 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 

  • Poté spusťte kód stisknutím tlačítka F5 tlačítko.

V dialogovém okně se zobrazí poslední hodnota.

Přečtěte si více: Jak zjistit poslední výskyt hodnoty ve sloupci v aplikaci Excel (5 metod)

Na co nezapomenout

Některé časté chyby:

  • Chyba: Jedna hodnota za druhou. Protože VYHLEDAT metoda může najít vždy pouze jednu hodnotu.
  • Chyba: #NA na adrese VLOOKUP . Pokud se hledaná hodnota v daném souboru dat nenachází, funkce vrátí tuto hodnotu. #NA chyba.
  • Range("Cell_Number").ClearContents část se používá k vymazání předchozí hodnoty z buňky. V opačném případě je třeba předchozí hodnotu odstranit ručně.

Závěr

Toto jsou některé způsoby, jak najít hodnoty ve sloupcích pomocí kódu VBA v aplikaci Excel. Ukázal jsem všechny metody s příslušnými příklady, ale může existovat mnoho dalších iterací. Probíral jsem také základy použitých funkcí. Pokud máte nějaký jiný způsob, jak toho dosáhnout, neváhejte se s námi o něj podělit. Navštivte naše webové stránky ExcelWIKI další zajímavé články o aplikaci Excel.

Hugh West je velmi zkušený školitel a analytik Excelu s více než 10 lety zkušeností v oboru. Má bakalářský titul v oboru Účetnictví a finance a magisterský titul v oboru Business Administration. Hugh má vášeň pro výuku a vyvinul jedinečný přístup k výuce, který lze snadno sledovat a pochopit. Jeho odborné znalosti Excelu pomohly tisícům studentů a profesionálů po celém světě zlepšit své dovednosti a vyniknout ve své kariéře. Prostřednictvím svého blogu Hugh sdílí své znalosti se světem a nabízí bezplatné výukové programy Excelu a online školení, které jednotlivcům a firmám pomohou dosáhnout jejich plného potenciálu.