VBA-valområde

Excel VBA-valintervall

Efter grundmaterialet med VBA är det viktigt att förstå hur man arbetar med ett antal celler i kalkylbladet. När du börjar köra koderna nästan alltid behöver du arbeta med en rad celler. Så det är viktigt att förstå hur man arbetar med en rad celler och ett sådant koncept är VBA “Selection of Range”. I den här artikeln visar vi dig hur du arbetar med "Selection Range" i Excel VBA.

Val och intervall är två olika ämnen, men när vi säger att välja intervall eller val av intervall är det ett enda koncept. RANGE är ett objekt, "Selection" är en egenskap och "Select" är en metod. Människor tenderar att förväxla med dessa termer, det är viktigt att känna till skillnaderna i allmänhet.

Hur väljer man ett intervall i Excel VBA?

Du kan ladda ner denna Excel-mall för VBA Selection Range här - VBA Selection Range Excel-mall

Exempel nr 1

Antag till exempel att du vill välja cellen A1 i kalkylbladet, först måste vi ange celladressen genom att använda RANGE-objekt som nedan.

Koda:

Efter att ha nämnt cellen måste vi välja put dot för att se IntelliSense-listan som är associerad med RANGE-objekt.

Form denna mängd listor väljer "Välj" -metoden.

Koda:

 Sub Range_Example1 () Range ("A1") Välj End Sub 

Nu väljer den här koden cellen A1 i det aktiva kalkylbladet.

Om du vill välja cellen i de olika kalkylbladen måste vi först ange kalkylbladet med dess namn. För att specificera kalkylbladet måste vi använda “WORKSHEET” -objektet och ange kalkylbladets namn med dubbla citat.

Om du till exempel vill markera cellen A1 i kalkylbladet "Datablad" anger du först kalkylbladet precis som nedan.

Koda:

 Underområde_Exempel1 () Kalkylblad ("Datablad") Slut Sub 

Fortsätt sedan koden för att specificera vad vi behöver göra i det här arket. I "Datablad" måste vi markera cellen A1 så att koden blir RANGE ("A1").

Koda:

 Underområde_Exempel1 () Kalkylblad ("Datablad"). Område ("A1"). Välj Avsluta 

När du försöker köra den här koden kommer vi under fel.

Anledningen till detta är "vi kan inte direkt leverera intervallobjekt och välja metod till kalkylarkobjektet".

Först måste vi välja eller aktivera VBA-kalkylbladet, så kan vi göra vad som helst vi ville göra.

Koda:

 Underområde_Exempel1 () Kalkylblad ("Datablad"). Aktivera intervall ("A1"). Välj Avsluta 

Nu kommer detta att markera cellen A1 i kalkylbladet "Datablad".

Exempel # 2 - Arbeta med aktuellt valt område

Välj är en annan sak och att arbeta med ett redan valt cellområde är annorlunda. Antag att du vill infoga ett värde "Hej VBA" i cellen A1 så kan vi göra det på två sätt.

För det första kan vi direkt skicka VBA-koden som RANGE (“A1”). Värde = “Hej VBA”.

Koda:

 Sub Range_Example1 () Range ("A1"). Värde = "Hello VBA" End Sub 

Vad den här koden kommer att göra är att detta bara infogar värdet “Hej VBA” i cellen A1 oavsett vilken cell som är vald för närvarande.

Titta på ovanstående resultat av koden. När vi kör den här koden har den infogat värdet ”Hej VBA” även om den valda cellen är B2.

För det andra kan vi infoga värdet i cellen med hjälp av "Selection" -egenskapen. För det första måste vi välja cellen manuellt och köra koden.

Koda:

 Sub Range_Example1 () Selection.Value = "Hello VBA" End Sub 

Vad den här koden kommer att göra är att detta infogar värdet "Hej VBA" i den valda cellen. För ett exempel, se nedanstående exempel på exekvering.

När jag körde koden var min nuvarande valda cell B2 och vår kod infogade samma värde i den valda cellen.

Nu väljer jag cellen B3 och kör, där får vi också samma värde.

En sak till som vi kan göra med "urval" -egenskapen är att vi kan infoga värde till mer än en cell också. Till exempel väljer jag nu cellintervallet från A1 till B5.

Nu om jag kör koden för alla valda celler får vi värdet som "Hej VBA".

Så, den enkla skillnaden mellan att ange celladress med RANGE-objekt och Selection-egenskap är att i Range-objektkoden infogar värde till cellerna som anges specifikt.

Men i Selection-objektet spelar det ingen roll vilken cell du befinner dig i, det kommer att infoga det nämnda värdet till alla de markerade cellerna.

Saker att komma ihåg här

  • Vi kan inte leverera vald metod direkt under Selection-egenskapen.
  • RANGE är ett objekt och urval är egendom.
  • Istället för intervall kan vi använda CELLS-egenskapen.