Excel VBA za iskanje vrednosti v stolpcu (6 primernih primerov)

  • Deliti To
Hugh West

V programu MS Excel moramo pogosto poiskati ali najti vrednosti v naboru podatkov. Lahko gre za iskanje podatkov v vrsticah ali stolpcih. Na srečo program Excel ponuja različne funkcije in formule za opravljanje tovrstnih nalog. S pomočjo kode Excel VBA lahko to nalogo iskanja ali iskanja vrednosti avtomatiziramo. V tem članku si bomo ogledali različne načine za iskanje vrednosti v stolpcu v programu Excel VBA.

Prenesi delovni zvezek za prakso

Poiščite vrednost v stolpcu.xlsm

6 primerov VBA za iskanje vrednosti v stolpcu v Excelu

Imejmo nabor podatkov o izdelkih z njihovimi ID izdelka , Blagovna znamka , Model , Cena na enoto in ID naročila . Naša naloga je ugotoviti, ali se ujemajo ID naročila Zdaj je naša naloga, da ugotovimo ID naročila povezane z ID izdelka .

1. Iskanje vrednosti v stolpcu z uporabo funkcije VBA Find

V prvem primeru bomo uporabili Funkcija Poišči v VBA za iskanje vrednosti v stolpcu.

📌 Koraki:

  • Pojdite na ime lista na dnu lista.
  • Pritisnite desni gumb miške.
  • Izberite Prikaži kodo možnost s seznama.

  • Odpre se okno VBA. Nato izberite Modul iz Vstavite možnost

  • V konzolo VBA napišite naslednjo kodo
 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 

  • Zdaj vstavite gumb v nabor podatkov.
  • Pojdite na Razvijalec zavihek.
  • Izberite Gumb ( Nadzor obrazca ) iz Vstavite oddelek.

  • Navedite poljubno ime gumba, kot ga imam jaz. Iskanje .

  • Temu gumbu pripišite kodo.
  • Izberite gumb in pritisnite desni gumb miške.
  • Izberite Dodelitev makra s seznama.

  • Izberite želeni makro iz Dodelitev makra okno.
  • Nato pritisnite V REDU .

  • Zdaj napišite poljuben ID izdelka in kliknite na Iskanje gumb.

Vidimo, da ni prikazano nobeno ujemanje, saj te številke izdelka ni na seznamu.

  • Drugače povedano ID izdelka in znova pritisnite tipko Iskanje gumb.

Dobimo številko naročila za dano ID izdelka .

Preberite več: Kako pridobiti vrednost celice po vrstici in stolpcu v programu Excel VBA

2. VBA za iskanje vrednosti iz različnih delovnih listov

V tem razdelku bomo naredili isto kot zgoraj, vendar za različne delovne liste. Predpostavimo, da so naši podatki o izdelku v List 2 , iskalno polje pa je v List 3 Zdaj bomo napisali kodo VBA, da bomo lahko iskali ID naročila z uporabo ID izdelka iz List 3 .

List 2:

List3:

📌 Koraki:

  • Sledite enakim korakom iz korak 1 na . korak 2 iz prejšnje metode za odprtje konzole VBA
  • V konzolo VBA napišite naslednjo kodo
 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 

  • Zdaj znova vstavite gumb, kot je bil prejšnji.
  • Nato dodelite makro kodo gumbu.

  • Vnesite katero koli ID izdelka in kliknite na Izvedba gumb

Preberite več: Poiščite vrednost v stolpcu in vrnite vrednost drugega stolpca v Excelu

3. Poiščite in označite vrednost v stolpcu

Oglejmo si, kako lahko poiščemo vrednosti iz stolpca tako, da jih označimo. V ta namen predpostavimo isti nabor podatkov zgoraj z dodatnim stolpcem z imenom Status dostave . Naša naloga je, da označimo vrednosti v Status dostave stolpec, ki so V obravnavi .

📌 Koraki:

  • Sledite istemu koraku iz korak 1 na . korak 2 kot pri prejšnji metodi za odprtje konzole VBA
  • V konzolo VBA napišite naslednjo kodo
 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 

  • Zdaj pojdite na delovni list in zaženite kodo.
  • Oglejte si rezultate v tabeli.

Preberite več: Kako najti najvišjo vrednost v stolpcu Excel (4 metode)

4. VBA za iskanje vrednosti v stolpcu z uporabo nadomestnih znakov

Nazadnje bomo videli, kako lahko v Excelu VBA iščemo ali najdemo vrednosti v stolpcih z uporabo nadomestnih znakov. Tudi pri tej metodi bomo uporabili isti nabor podatkov kot zgoraj. Naša naloga je poiskati cene izdelkov z uporabo njihovega modela. Vnesli bi lahko celotno ime ali zadnje/prve znake ID izdelka .

📌 Koraki:

  • Sledite istemu koraku iz korak 1 na . korak 2 kot pri prejšnji metodi za odprtje konzole VBA
  • V konzolo VBA napišite naslednjo kodo
 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 

  • Spet vstavite gumb, kot je bil prejšnji.
  • Sedaj dodelite makro kodo gumbu.

  • Zdaj vnesite kateri koli delni ID izdelka in pritisnite Izvedba gumb.

Preberite več: Kako najti najnižjo vrednost v stolpcu programa Excel (6 načinov)

5. Excel VBA za iskanje največje vrednosti v stolpcu

V tem primeru želimo s kodo VBA poiskati največjo vrednost stolpca.

📌 Koraki:

  • Želimo izvedeti najvišjo ceno.

  • V nov modul vnesite naslednjo kodo VBA.
 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 

  • Nato pritisnite F5 za zagon kode VBA.
  • Spletna stran Vhod se prikaže pogovorno okno.
  • Izberite območje iz nabora podatkov.

  • Na koncu pritisnite V REDU gumb.

V pogovornem oknu je prikazana največja vrednost.

6. Excel VBA za iskanje zadnje vrednosti v stolpcu

Tu želimo izvedeti vrednost zadnje vrstice ali celice določenega stolpca. Na primer, želimo izvedeti zadnji izdelek iz stolpca Izdelek

📌 Koraki:

  • Vnesite VBA Spodnja koda v 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 

  • Nato zaženite kodo tako, da pritisnete tipko F5 gumb.

Zadnja vrednost je prikazana v pogovornem oknu.

Preberite več: Kako poiskati zadnje pojavljanje vrednosti v stolpcu v Excelu (5 metod)

Stvari, ki si jih je treba zapomniti

Nekatere pogoste napake:

  • Napaka: Ena vrednost naenkrat. Ker NAJDI metoda lahko najde le eno vrednost naenkrat.
  • Napaka: #NA na spletnem mestu VLOOKUP Če iskane vrednosti ni v danem naboru podatkov, funkcija vrne to #NA napaka.
  • Razpon("Cell_Number").ClearContents se uporablja za brisanje prejšnje vrednosti iz celice. V nasprotnem primeru je treba prejšnjo vrednost odstraniti ročno.

Zaključek

To so nekateri načini iskanja vrednosti v stolpcih z uporabo kode VBA v Excelu. Prikazal sem vse metode z ustreznimi primeri, vendar lahko obstajajo številne druge ponovitve. Obravnaval sem tudi osnove uporabljenih funkcij. Če imate kakršno koli drugo metodo za doseganje tega, jo lahko delite z nami. Obiščite našo spletno stran ExcelWIKI za več zanimivih člankov o Excelu.

Hugh West je zelo izkušen trener Excela in analitik z več kot 10-letnimi izkušnjami v industriji. Po izobrazbi je diplomirani računovodstvo in finance ter magisterij poslovne administracije. Hugh ima strast do poučevanja in je razvil edinstven pristop k poučevanju, ki ga je enostavno slediti in razumeti. Njegovo strokovno znanje o Excelu je pomagalo na tisoče študentom in strokovnjakom po vsem svetu, da so izboljšali svoje sposobnosti in se izkazali v karieri. Prek svojega bloga Hugh deli svoje znanje s svetom, ponuja brezplačne vadnice za Excel in spletno usposabljanje, ki posameznikom in podjetjem pomaga doseči njihov polni potencial.