Denna handledning visar hur du använder Activecell Offset i VBA.
ActiveCell är en egenskap hos VBA som representerar celladressen för den aktiva cellen i ditt kalkylblad. Om din muspekare är placerad i cell A1 kommer ActiveCell -egenskapen i VBA att returnera celladressen till "A1". Det är ett antal egenskaper och metoder som är kopplade till ActiveCell. I den här artikeln koncentrerar vi oss på metoden ActiveCell.Offset.
ActiveCell.Offset egenskaper och metoder
Activecell.Offset har ett antal egenskaper och metoder tillgängliga för att programmeras med VBA. Om du vill se de tillgängliga egenskaperna och metoderna skriver du följande uttalande i en procedur som visas nedan och trycker på punktstangenten på tangentbordet för att se en rullgardinsmeny.
Metoder avbildas med den gröna metodikonen och egenskaperna med ikonen för den lilla handen. Egenskaperna och metoderna för Activecell.Offset -metoden är desamma som för Activecell -metoden.
ActiveCell.Offset Syntax
Syntaxen för Activecell.Offset är följande
där RowOffset och ColumnOffset är antalet rader som ska förskjutas (positiva siffror för ned, negativt tal för upp) eller antalet kolumner du önskar förskjutning (positiva tal förskjuter till höger, negativt tal till vänster).
ActiveCell.Offset … Välj
De Activecell.Offset … Välj metoden är den vanligaste metoden för med Activecell.Offset -metoden. Det låter dig flytta till en annan cell i ditt kalkylblad. Du kan använda den här metoden för att flytta över kolumner eller uppåt eller nedåt rader i kalkylbladet.
För att flytta ner en rad, men stanna i samma kolumn:
1 | Activecell.Offset (1,0) .Välj |
För att flytta över en kolumn, men stanna på samma rad:
1 | Activecell.Offset (0,1) .Välj |
Så här flyttar du ner en rad och över en kolumn:
1 | Activecell.Offset (1,1) .Välj |
Så här flyttar du upp en rad:
1 | Activecell.Offset (-1,0) .Välj |
För att flytta till vänster i en kolumn:
1 | Activecell.Offset (0, -1) .Välj |
I proceduren nedan går vi igenom en rad celler och går ner en rad och över en kolumn när vi gör slingan:
12345678 | Sub ActiveCellTest ()Dim x Som heltalOmråde ("A1"). VäljFör x = 1 till 10ActiveCell = xActiveCell.Offset (1, 1) .VäljNästa xAvsluta Sub |
Resultatet visas i grafiken nedan:
Loopen sätter värdet på i (1-10) i Activecell, och sedan använder den Activecell.Offset egenskap för att flytta ner en rad och över en kolumn till höger - upprepa denna loop 10 gånger.
VBA -programmering | Kodgenerator fungerar för dig!
Använda Range Object med Activecell.Offset Select
Att använda intervallobjektet med den aktiva cellen kan ibland förvirra vissa människor.
Tänk på följande procedur:
1234 | Sub ActiveCellOffsetRange ()Område ("B1: B10"). VäljActiveCell.Offset (1, 1) .Range ("A1"). VäljAvsluta Sub |
Med ActiveCell.Offset (1,1.Range ("A1") har intervallet ("A1") angetts. Detta betyder dock inte att cell A1 i arket kommer att väljas. Som vi har angett intervallet ("B1: B10"), cell A1 i det intervallet är faktiskt cell B1 i arbetsboken. Därför kommer cellen att förskjutas av 1 rad och 1 kolumn från cell B1 INTE från cell A1.
Därför krävs inte intervallet (“A1 ′) i det här fallet eftersom makrot fungerar på samma sätt med det eller utan det.
Alternativ till ActiveCell
Istället för att använda Activecell med Offset -metoden kan vi också använda Range -objektet med Offset -metoden.
123 | Sub RangeOffset ()Område ("B1"). Offset (0, 1) .VäljAvsluta Sub |
Proceduren ovan skulle välja cell C1 i kalkylbladet.