VBA HITTA

Excel VBA Find

När vi använder Find i ett normalt 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, det ena ä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 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 Find in basic 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 områden som 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 det 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 vad som är ett värde vi försöker söka efter.

I grund och botten finner VBA att Excel har ett obligatoriskt argument som är Vilket värde vi vill söka. 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ökfunktion är cellområdet. Som i vilket intervall vi vill hitta ett värde. Det kan vara några kolumner eller få celler eller ett helt kalkylblad.

Exempel

Du kan ladda ner den här VBA FIND-funktionen Excel-mall här - VBA FIND-funktionen Excel-mall

Exempel nr 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 ()

Dim FindS Som Sträng

Dim Rng As Range

FindS = InputBox ("Ange det värde du vill söka")

Med ark (“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 där data hittades.

Exempel 2

I exemplet ovan fanns det fyra unika namn, men tänk om det fanns mer än ett namn i uppgifterna, 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 sluta, men det finns ett annat värde som liknar 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 i blad 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 de ark som vi arbetar med som är ark 2 i detta exempel,

  • Nu hittar vi texten oavsett användaren skriver in efter A2-cellen, så vi definierar vår sökfunktion enligt 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 utvecklarfliken 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.