VBA VINDEN

Excel VBA zoeken

Wanneer we Zoeken in een normaal werkblad gebruiken, drukken we op de sneltoets CTRL + F en typen we de gegevens die we nodig hebben om te vinden en als we de gewenste waarde niet hebben, gaan we naar de volgende overeenkomst, als er veel van dergelijke overeenkomsten zijn, is het een vervelende taak, maar wanneer we gebruiken FIND in VBA, het doet de taken voor ons en geeft ons de exacte overeenkomst en er zijn drie argumenten voor nodig, een is wat te vinden, waar te vinden en waar naar te kijken.

Voordat we naar VBA gaan en de zoekfunctie in macro's gaan gebruiken, moeten we eerst leren wat een zoekfunctie in Excel is. In normaal Excel op het tabblad Home onder de bewerkingsgroep, kunnen we een zoekfunctie vinden die wordt gebruikt om een ​​tekenreeks of een waarde in een celbereik of een heel werkblad te vinden.

Als we hierop klikken, krijgen we twee opties;

De ene is eenvoudig te vinden,

We kunnen zien dat het ook een reeks opties heeft die een andere functie openen.

Het doet het vind-algoritme met vier beperkingen: zoeken wat, binnen, zoeken en zoeken.

De tweede optie in Excel is Zoeken en vervangen, wat wordt gebruikt als we een string vinden, maar wat deze moet vervangen door een andere waarde,

Zoek functiesyntaxis

We hebben hierboven geleerd wat Find is in basic Excel. In VBA schrijven we codes handmatig, maar de functies zijn hetzelfde als bij normaal Excel. Laten we eerst eens kijken naar de syntaxis.

Expression.Find (What, lookin, ....)

Als de waarde die we zoeken wordt gevonden met de Excel-functie, wordt de cel geretourneerd waar de waarde is en als de waarde niet wordt gevonden, wordt het object van de functie op niets gezet.

Expressies in macro's zijn bereiken die zijn gedefinieerd zoals bereik 1 of bereik 2. Wat is een trefwoord voor wat we willen zoeken naar een specifieke waarde? Lookin is een trefwoord voor wat we proberen te zoeken, is het een opmerking, een formule of een tekenreeks. Evenzo zijn er andere beperkingen in de functie Zoeken die optioneel zijn. Het enige verplichte veld is wat een waarde is die we proberen te zoeken.

Kortom, VBA vindt dat Excel één vereist argument heeft, namelijk welke waarde we willen zoeken. De rest van de beperkingen zijn optioneel en er zijn veel beperkingen in de zoekfunctie. Zoekfunctie is vergelijkbaar met wat een zoekfunctie is in Excel.

De parameter voor de zoekfunctie is het celbereik. Zoals in welk bereik we een waarde willen vinden. Dit kunnen een paar kolommen of een paar cellen zijn, of een heel werkblad.

Voorbeelden

U kunt deze VBA FIND-functie Excel-sjabloon hier downloaden - VBA FIND-functie Excel-sjabloon

Voorbeeld 1

Stel dat onze gegevens de volgende waarden hebben

We zullen proberen "Aran" te vinden in dezelfde gegevens.

  • Om een ​​VBA-code te schrijven, moet het ontwikkelaarstabblad in Excel zijn ingeschakeld om VBA-codes te kunnen schrijven.

  • We beginnen met het schrijven van onze code door de volgende code te schrijven zoals hieronder weergegeven:
Submonster ()

Dim FindS As String

Dim Rng als bereik

FindS = InputBox ("Voer de waarde in die u wilt zoeken")

Met bladen ("Blad1"). Bereik ("A: A")

  • De sample is de functienaam die aan de sub is gegeven.
  • Find is de string die we willen dat de gebruiker die we willen invoeren, zoekt.
  • Rng is de variabele die we voor het bereik hebben genomen.
  • Nu vragen we de gebruiker om de waarde in te voeren die lijkt op de onderstaande schermafbeelding,

  • Nu zullen we onze zoekfunctie in de module definiëren.

  • De functie vindt de waarde die door de gebruiker is ingevoerd in het opgegeven bereik.
  • Nu sluiten we de functie met de volgende argumenten.

  • Als we nu onze code eerst uitvoeren, wordt er door de gebruiker om een ​​waarde gevraagd.

  • Zodra de code is voltooid, keert het terug naar de cel waar de gegevens zijn gevonden.

Voorbeeld # 2

In het bovenstaande voorbeeld waren er vier unieke namen, maar wat als er meer dan één naam in de gegevens zou zijn, zoals de onderstaande gegevens,

We kunnen zien dat de naam Aran twee keer wordt herhaald in de bovenstaande gegevens. Als Excel de naam Aran moet vinden, zal het deze vinden in cel A2 en stoppen, maar er is een andere waarde vergelijkbaar met die van A2 in cel A6. Hoe haal je die waarde op? Hier komt de syntaxis van Find (What, After) in hulp.

Na definieert de cel waarna we de gegevens willen doorzoeken.

Laten we de code voor de bovenstaande gegevens schrijven.

  • Denk er altijd aan om het ontwikkelaarstabblad in te schakelen vanuit opties en vervolgens vanuit het aanpassen van het lint in Excel om de code in VBA te kunnen schrijven.
  • In VBA krijgen we Microsoft Excel-objecten, een module waarin we de codes schrijven.

  • Voorheen werkten we aan blad 1, nu werken we in blad 2, dus selecteer blad 2 voor een andere module en er verschijnt een blanco pagina.

  • Begin nu met het schrijven van de code door de functie eerst te definiëren als SUB Sample2 () en druk op enter.

  • Nu we onze functie hebben gedefinieerd, gaan we in op het hoofdgedeelte, namelijk het definiëren van onze variabelen.

  • Definieer wat de variabele Find moet hebben,

  • Selecteer de bladen waar we aan werken, in dit voorbeeld blad 2,

  • Nu zullen we de tekst vinden wat de gebruiker invoert na de A2-cel, dus definiëren we onze zoekfunctie zoals hieronder,

  • Nu sluiten we de code door de voorwaarden met en als te beëindigen.

Wat de bovenstaande code doet, is de tekenreeks na de cel A2 doorzoeken en de cel retourneren waar deze ook wordt gevonden.

Dingen om te onthouden

  1. Allereerst moeten we het ontwikkelaarstabblad inschakelen om VBA te kunnen gebruiken.
  2. Wat is de specifieke waarde die we moeten vinden?
  3. Als de waarde niet wordt gevonden, wordt het object van de functie op niets gezet.