VBA-sökfunktion - Hur använder jag VBA Find-funktionen? (Exempel)

Innehållsförteckning

Excel VBA Find

När vi använder Find i ett vanligt kalkylblad trycker vi snabbtangenten CTRL + F och skriver in de data vi behöver hitta och om inte önskat värde går vi till nästa matchning, om det finns många sådana matchningar är det en tråkig uppgift men när vi använder HITTA i VBA, det gör uppgifterna för oss och ger oss exakt matchning och det krävs tre argument, ett är vad man ska hitta, var man ska hitta och var man ska titta på.

Innan vi går till VBA och börjar använda sökfunktionen i makron måste vi först lära oss vad som är en sökfunktion i Excel. I normal excel, på fliken Hem under redigeringsgruppen, kan vi hitta en sökfunktion som används för att hitta en sträng eller ett värde i ett cellintervall eller hela kalkylblad.

När vi klickar på detta får vi två alternativ;

En är enkel att hitta,

Vi kan se att det också har ett läge med alternativ som öppnar upp en annan funktion.

Det gör sökalgoritmen med fyra begränsningar: Hitta vad, inom, sök och titta in.

Det andra alternativet i Excel är att hitta och ersätta som används när vi hittar en sträng men vad som ska ersättas med något annat värde,

Hitta funktionssyntax

Vi har lärt oss ovan vad som är Hitta i grundläggande Excel. I VBA skriver vi koder manuellt, men funktionerna är desamma som normal excel. Låt oss först titta på syntaxen.

Expression.Find (Vad, lookin, ….)

Om värdet vi letar efter hittas med excel-funktionen, returnerar den cellen där värdet är, och om värdet inte hittas sätts objektets funktion till ingenting.

Uttryck i makron är definierade intervall, till exempel intervall 1 eller intervall 2. Vad är ett nyckelord för det vi vill söka efter ett specifikt värde? Lookin är ett nyckelord för vad vi försöker söka, är det en kommentar eller en formel eller en sträng. På samma sätt finns det andra begränsningar i Find-funktionen, som är valfria. Det enda obligatoriska fältet som krävs är vilket värde vi försöker söka efter.

I grund och botten finner VBA att Excel har ett nödvändigt argument, vilket är vilket värde vi vill söka efter. Resten av begränsningarna är valfria, och det finns många begränsningar i sökfunktionen. Sökfunktionen liknar vad en sökfunktion är i Excel.

Parametern för sökfunktionen är cellområdet, som i vilket område vi vill hitta ett värde. Det kan vara några kolumner eller få celler eller ett helt kalkylblad.

Exempel

Exempel 1

Antag att våra data har följande värden

Vi kommer att försöka hitta "Aran" i samma data.

  • För att skriva en VBA-kod är det nödvändigt att ha aktiverat utvecklarfliken i Excel för att kunna skriva VBA-koder.
  • Vi börjar skriva vår kod genom att skriva följande kod som visas nedan,
Delprov ()
DimFindS As String
Dim Rng As Range
FindS = InputBox ("Enter the value you want to search")
With Sheets ("Sheet1") .Range ("A: A")
  • Exemplet är funktionsnamnet som ges till suben.
  • Sök är strängen vi vill att användaren vi vill ange ska söka.
  • Rng är den variabel som vi tog för intervallet.
  • Nu ber vi användaren att ange värdet som ser ut som skärmdumpen nedan,
  • Nu kommer vi att definiera vår sökfunktion i modulen.
  • Funktionen hittar det värde som användaren har angett i det angivna intervallet.
  • Nu stänger vi funktionen med följande argument.
  • Nu, om vi kör vår kod först, ber den om en uppmaning från användaren om ett värde.
  • När koden är klar returnerar den cellen till den plats där data hittades.

Exempel 2

I ovanstående exempel fanns det fyra unika namn, men vad händer om det fanns mer än ett namn i data, till exempel överväga nedanstående data,

Vi kan se att namnet Aran upprepas två gånger i ovanstående data. Om excel måste hitta namnet Aran, kommer det att hitta det i cell A2 och stoppa, men det finns ett annat värde som liknar det för A2 i cell A6. Hur hämtar jag det värdet? Här kommer syntaxen för Find (What, After) i hjälp.

Efter definierar cellen, efter vilken referens, vi vill söka i data.

Låt oss skriva koden för ovanstående data.

  • Kom alltid ihåg att aktivera fliken utvecklare från alternativ och sedan från att anpassa menyfliksområdet i Excel för att kunna skriva koden i VBA.
  • I VBA får vi Microsoft Excel-objekt, som är en modul där vi skriver koder.
  • Tidigare arbetade vi med ark 1; nu arbetar vi med ark 2, så välj ark 2 för en annan modul så visas en tom sida.
  • Börja nu skriva koden genom att definiera funktionen först som SUB Sample2 () och tryck på enter.
  • Nu har vi definierat vår funktion; vi börjar komma in i huvuddelen, som definierar våra variabler.
  • Definiera vad Find-variabeln ska ha,
  • Välj arken som vi arbetar med, vilket är ark 2 i detta exempel,
  • Nu hittar vi texten oavsett vad användaren skriver in efter A2-cellen, så vi definierar vår sökfunktion som nedan,
  • Nu stänger vi koden genom att avsluta villkoren med och om.

Vad ovanstående kod gör är att söka i strängen efter cellen A2 och returnera cellen vart den än finns.

Saker att komma ihåg

  1. Först och främst måste vi aktivera fliken utvecklare för att kunna använda VBA.
  2. Vad är det specifika värdet vi behöver hitta?
  3. Om värdet inte hittas sätts objektets funktion till ingenting.

Intressanta artiklar...