Inhoudsopgave
In MS Excel moeten we vaak waarden zoeken of vinden in de dataset, bijvoorbeeld in rijen of kolommen. Gelukkig biedt Excel verschillende functies en formules om dit soort taken uit te voeren. Met behulp van Excel VBA-code kunnen we dit zoeken of vinden van waarden automatiseren. In dit artikel zullen we verschillende manieren bekijken om waarde vinden in een kolom in Excel VBA.
Download Praktijk werkboek
Waarde in kolom zoeken.xlsm6 voorbeelden van VBA om waarde in kolom te vinden in Excel
Laten we een dataset hebben van productinformatie met hun Product ID , Merk , Model , Prijs per eenheid en Bestel ID Onze taak is om uit te vinden welke Bestel ID Nu is het onze taak om de Bestel ID geassocieerd met de Product ID .
1. Waarde in kolom vinden met VBA-zoekfunctie
In het eerste voorbeeld gebruiken we de Zoekfunctie in VBA om een waarde in een kolom te vinden.
📌 Stappen:
- Ga naar de bladnaam onderaan het blad.
- Druk op de rechter muisknop.
- Kies de Code bekijken optie uit de lijst.
- Het VBA-venster wordt geopend. Selecteer vervolgens Module van de Plaats optie
- Schrijf nu de volgende code in de VBA-console
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
- Voeg nu een knop in de dataset in.
- Ga naar de Ontwikkelaar tab.
- Kies Knop ( Vormcontrole ) van de Plaats sectie.
- Geef een willekeurige naam voor de knop. Zoals ik hem geef als Zoek op .
- Wijs de code toe aan deze knop.
- Selecteer de knop en druk op de rechter muisknop.
- Kies Macro toewijzen van de lijst.
- Selecteer de gewenste macro uit de Macro toewijzen raam.
- Druk vervolgens op OK .
- Schrijf nu een willekeurige Product ID en klik op de Zoek op knop.
We zien dat er geen overeenkomst is, omdat dit productnummer niet in de lijst voorkomt.
- Zet een andere Product ID en druk opnieuw op de Zoek op knop.
We krijgen het ordernummer voor de gegeven Product ID .
Lees meer: Hoe celwaarde per rij en kolom te krijgen in Excel VBA
2. VBA om waarde te vinden in verschillende werkbladen
In dit gedeelte gaan we hetzelfde doen als hierboven, maar dan voor verschillende werkbladen. Laten we aannemen dat onze productinformatie staat in Blad 2 en het zoekvak staat in Blad 3 Nu gaan we de VBA-code schrijven zodat we kunnen zoeken naar Order ID met behulp van Product ID van Blad 3 .
Blad 2:
Sheet3:
📌 Stappen:
- Volg dezelfde stappen van stap 1 naar stap 2 van de vorige methode om de VBA-console te openen
- Schrijf nu de volgende code in de VBA-console
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
- Voeg nu weer een knop in zoals de vorige.
- Wijs dan de macrocode toe aan de knop.
- Voer een Product ID en klik op de Uitvoeren knop
Lees meer: Waarde in kolom opzoeken en waarde van andere kolom teruggeven in Excel
3. Zoek en markeer waarde in kolom
Laten we eens kijken hoe we waarden van een kolom kunnen achterhalen door ze te markeren. Laten we hiervoor uitgaan van dezelfde dataset hierboven met een extra kolom genaamd Leveringsstatus Nu is het onze taak om de waarden in de Leveringsstatus kolom die In afwachting van .
📌 Stappen:
- Volg dezelfde stap van stap 1 naar stap 2 als de vorige methode om de VBA-console te openen
- Schrijf nu de volgende code in de VBA-console
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 Tot rngFind_Value.Address = strAddress_First End If End Sub
- Ga nu naar het werkblad en voer de code uit.
- Zie de uitvoer in de tabel.
Lees meer: Hoe de hoogste waarde in een Excel-kolom te vinden (4 methoden)
4. VBA om waarden in een kolom te vinden met behulp van jokertekens
Ten slotte zullen we zien hoe we waarden in kolommen kunnen zoeken of vinden met behulp van jokertekens in Excel VBA. Ook voor deze methode gebruiken we dezelfde dataset als hierboven. Onze taak is om productprijzen te vinden aan de hand van hun model. We kunnen ofwel de volledige naam of de laatste/eerste tekens van de Product ID .
📌 Stappen:
- Volg dezelfde stap van stap 1 naar stap 2 als de vorige methode om de VBA-console te openen
- Schrijf nu de volgende code in de VBA-console
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
- Voeg opnieuw een knop in zoals de vorige.
- Wijs nu de macrocode toe aan de knop.
- Voer nu een willekeurige gedeeltelijke Product ID en druk op de Uitvoeren knop.
Lees meer: Hoe de laagste waarde in een Excel-kolom te vinden (6 manieren)
5. Excel VBA om maximale waarde in kolom te vinden
Hier willen we de maximumwaarde van een kolom vinden met behulp van de VBA-code.
📌 Stappen:
- We willen de maximumprijs weten.
- Zet nu de volgende VBA-code in een nieuwe module.
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
- Druk vervolgens op de F5 knop om de VBA-code uit te voeren.
- De Ingang dialoogvenster verschijnt.
- Selecteer het bereik uit de dataset.
- Druk ten slotte op de OK knop.
We zien dat de maximumwaarde in het dialoogvenster wordt getoond.
6. Excel VBA om de laatste waarde in de kolom te vinden
Hier willen we de waarde weten van de laatste rij of cel van een specifieke kolom. Bijvoorbeeld, we willen het laatste product weten van de kolom Product
📌 Stappen:
- Voer de VBA onderstaande code op de 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
- Voer vervolgens de code uit door op de F5 knop.
De laatste waarde wordt getoond in het dialoogvenster.
Lees meer: Hoe de laatste keer dat een waarde in een kolom voorkomt in Excel te vinden (5 methoden)
Dingen om te onthouden
Enkele veel voorkomende fouten:
- Fout: Eén waarde per keer. Omdat de VIND methode kan slechts één waarde tegelijk vinden.
- Fout: #NA in VLOOKUP Indien de gezochte waarde niet aanwezig is in de gegeven dataset, zal deze functie het volgende teruggeven #NA fout.
- Range("Cell_Number").ClearContents gedeelte wordt gebruikt om de vorige waarde uit de cel te verwijderen. Anders moet de vorige waarde handmatig worden verwijderd.
Conclusie
Dit zijn enkele manieren om waarden te vinden in kolommen met behulp van VBA-code in Excel. Ik heb alle methoden getoond met hun respectieve voorbeelden, maar er kunnen vele andere iteraties zijn. Ik heb ook de grondbeginselen van de gebruikte functies besproken. Als u een andere methode hebt om dit te bereiken, voel u dan vrij om deze met ons te delen. Bezoek onze website ExcelWIKI voor meer interessante artikelen over Excel.