Som du vet utför en VBA-metod en åtgärd i Excel 2016. Ett Range-objekt har dussintals metoder men du behöver inte de flesta av dessa. Här hittar du några av de mest använda Range-objektmetoderna.
Välj metoden
Använd metoden Välj för att markera ett cellområde. Följande sats väljer ett intervall i det aktiva kalkylbladet:
Range(“A1:C12”). Välj
Innan du väljer ett intervall är det ofta en bra idé att använda ytterligare en sats för att säkerställa att rätt kalkylblad är aktivt. Till exempel, om Blad1 innehåller intervallet du vill välja, använd följande satser för att välja intervallet:
Sheets(“Sheet1”).Aktivera
Range(“A1:C12”). Välj
I motsats till vad du kan förvänta dig, genererar följande uttalande ett fel om Sheet1 inte redan är det aktiva arket. Med andra ord måste du använda två påståenden istället för bara en: en för att aktivera arket och en annan för att välja intervall.
Sheets(“Sheet1”).Range(“A1:C12”).Välj
Om du använder GoTo-metoden för Application-objektet för att välja ett intervall, kan du glömma att välja rätt kalkylblad först. Detta uttalande aktiverar Blad1 och väljer sedan intervallet:
Application.Goto Sheets(“Sheet1”).Range(“A1:C12”)
GoTo-metoden är VBA-motsvarigheten till att trycka på F5 i Excel, vilket visar GoTo-dialogrutan.
Metoderna för att kopiera och klistra in
Du kan utföra kopierings- och klistraoperationer i VBA genom att använda metoderna Kopiera och klistra in. Observera att två olika objekt spelar in. Metoden Kopiera är tillämplig på Range-objektet, men Paste-metoden gäller för Worksheet-objektet. Det är faktiskt vettigt: du kopierar ett intervall och klistrar in det i ett kalkylblad.
Detta korta makro (med tillstånd av makroinspelaren) kopierar området A1:A12 och klistrar in det i samma kalkylblad, med början i cell C1:
Sub CopyRange()
Range(“A1:A12”). Välj
Urval.Kopiera
Range(“C1”).Välj
ActiveSheet.Paste
Avsluta Sub
Observera att i föregående exempel används ActiveSheet-objektet med metoden Klistra in. Detta är en specialversion av kalkylbladsobjektet som refererar till det för närvarande aktiva kalkylbladet. Lägg också märke till att makrot väljer intervallet innan det kopieras. Du behöver dock inte välja ett intervall innan du gör något med det. Faktum är att följande procedur utför samma uppgift som föregående exempel genom att använda ett enda uttalande:
Sub CopyRange2()
Range(“A1:A12”). Kopiera intervall(“C1”)
Avsluta Sub
Denna procedur drar fördel av det faktum att kopieringsmetoden kan använda ett argument som motsvarar destinationsintervallet för kopieringsoperationen. Det är något du kan ta reda på genom att kolla med hjälpsystemet.
Clear-metoden
Rensa-metoden tar bort innehållet i ett intervall plus all cellformatering. Om du till exempel vill zappa allt i kolumn D, gör följande påstående susen:
Kolumner(“D:D”). Rensa
Du bör vara medveten om två relaterade metoder. ClearContents-metoden tar bort innehållet i intervallet men lämnar formateringen intakt. ClearFormats-metoden tar bort formateringen i intervallet men inte cellinnehållet.
Metoden Ta bort
Rensa ett intervall skiljer sig från att radera ett intervall. När du tar bort ett intervall flyttar Excel de återstående cellerna runt för att fylla upp intervallet du raderade.
Följande exempel använder metoden Delete för att ta bort rad 6:
Rader(“6:6”). Radera
När du tar bort ett intervall som inte är en komplett rad eller kolumn, måste Excel veta hur man flyttar cellerna. (För att se hur detta fungerar, experimentera med Excels Hem → Celler → Ta bort → Ta bort celler.)
Följande sats tar bort ett intervall och fyller sedan den resulterande luckan genom att flytta de andra cellerna åt vänster:
Range(“C6:C10”). Ta bort xlToLeft
Metoden Ta bort använder ett argument som anger hur Excel ska flytta de återstående cellerna. I det här fallet används en inbyggd konstant (xlToLeft) för argumentet. Du kan också använda xlUp, en annan namngiven konstant.