Ta vadnica bo pokazala, kako uporabljati Activecell Offset v VBA.
ActiveCell je lastnost VBA, ki predstavlja naslov celice aktivne celice na vašem delovnem listu. Če je kazalec miške v celici A1, bo lastnost ActiveCell v VBA vrnila naslov celice »A1«. Številne lastnosti in metode so povezane z ActiveCell. V tem članku se osredotočamo na metodo ActiveCell.Offset.
Lastnosti in metode ActiveCell.Offset
Activecell.Offset ima na voljo številne lastnosti in metode za programiranje z VBA. Če si želite ogledati razpoložljive lastnosti in metode, vnesite naslednji stavek v postopek, prikazan spodaj, in pritisnite tipko pike na tipkovnici, da se prikaže spustni seznam.
Metode so prikazane z zeleno ikono metode, lastnosti pa z ikono majhne roke. Lastnosti in metode za metodo Activecell.Offset so enake kot za metodo Activecell.
Sintaksa ActiveCell.Offset
Sintaksa Activecell.Offset je naslednja
kjer sta RowOffset in ColumnOffset število vrstic za premik (pozitivna števila za navzdol, negativna številka za gor) ali število stolpcev, ki jih želite premakniti (pozitivna števila zamiki na desni, negativna številka na levi).
ActiveCell.Offset… Izberite
The Activecell.Offset… Izberite metoda je najpogosteje uporabljena metoda z metodo Activecell.Offset. Omogoča vam, da se premaknete v drugo celico na svojem delovnem listu. S to metodo se lahko premikate po stolpcih ali po vrsticah navzgor ali navzdol na svojem delovnem listu.
Če se želite premakniti navzdol po vrstici, vendar ostati v istem stolpcu:
1 | Activecell.Offset (1,0) .Izberi |
Če se želite premikati po stolpcu, vendar ostati v isti vrstici:
1 | Activecell.Offset (0,1) .Izberi |
Če se želite pomakniti navzdol po vrstici in čez stolpec:
1 | Activecell.Offset (1,1) .Izberi |
Vrstico premaknete navzgor:
1 | Activecell.Offset (-1,0) .Izberi |
Za premik levega stolpca:
1 | Activecell.Offset (0, -1) .Izberite |
V spodnjem postopku prehajamo skozi obseg celic in se premikamo navzdol za eno vrstico in čez en stolpec, ko izvajamo zanko:
12345678 | Sub ActiveCellTest ()Dim x kot celo številoRazpon ("A1"). IzberiteZa x = 1 do 10ActiveCell = xActiveCell.Offset (1, 1) .IzberiNaslednji xEnd Sub |
Rezultat tega je prikazan na spodnji sliki:
Zanka daje vrednost i (1-10) v Activecell, nato pa uporabi Activecell.Offset lastnost, da se premaknete navzdol za eno vrstico in čez en stolpec na desno - to zanko ponovite 10 -krat.
Programiranje VBA | Generator kod deluje za vas!
Uporaba Range Object z Activecell.Offset Select
Uporaba predmeta Range z aktivno celico lahko včasih zmoti nekatere ljudi.
Upoštevajte naslednji postopek:
1234 | Sub ActiveCellOffsetRange ()Razpon ("B1: B10"). IzberiteActiveCell.Offset (1, 1) .Range ("A1"). IzberiteEnd Sub |
S funkcijo ActiveCell.Offset (1,1.Range (“A1”)) je bil določen obseg (“A1”), vendar to ne pomeni, da bo izbrana celica A1 na listu. Kot smo določili obseg (»B1: B10«), celica A1 v tem obsegu je dejansko celica B1 v delovnem zvezku, zato bo celica zamaknjena za 1 vrstico in 1 stolpec od celica B1 NE iz celice A1.
Zato v tem primeru obseg ("A1 ′") ni potreben, saj bo makro deloval na enak način z njim ali brez njega.
Alternative za ActiveCell
Namesto da uporabimo Activecell z metodo Offset, lahko uporabimo tudi objekt Range z metodo Offset.
123 | Sub RangeOffset ()Razpon ("B1"). Odmik (0, 1). IzberiteEnd Sub |
Zgornji postopek bi izbral celico C1 na delovnem listu.