Denne opplæringen vil demonstrere hvordan du bruker Activecell Offset i VBA.
ActiveCell er en egenskap for VBA som representerer celleadressen til den aktive cellen i regnearket. Hvis musepekeren er plassert i celle A1, vil ActiveCell -egenskapen i VBA returnere celleadressen til "A1". Det er en rekke egenskaper og metoder som er koblet til ActiveCell. I denne artikkelen konsentrerer vi oss om metoden ActiveCell.Offset.
ActiveCell.Offset egenskaper og metoder
Activecell.Offset har en rekke egenskaper og metoder tilgjengelig for programmering med VBA. For å se tilgjengelige egenskaper og metoder, skriver du inn følgende setning i en prosedyre som vist nedenfor, og trykker på periodetasten på tastaturet for å se en rullegardinliste.
Metoder er avbildet med det grønne metodeikonet, og egenskaper ved ikonet for liten hånd. Egenskapene og metodene for Activecell.Offset -metoden er de samme som for Activecell -metoden.
ActiveCell.Offset Syntax
Syntaksen til Activecell.Offset er som følger
hvor RowOffset og ColumnOffset er antallet rader som skal forskyves (positive tall for ned, negative tall for opp) eller antall kolonner du ønsker forskyvning (positive tall forskyver til høyre, negative tall til venstre).
ActiveCell.Offset … Velg
De Activecell.Offset … Velg metoden er den mest brukte metoden for med Activecell.Offset -metoden. Den lar deg flytte til en annen celle i regnearket. Du kan bruke denne metoden til å flytte over kolonner eller opp eller ned rader i regnearket.
For å flytte nedover en rad, men bli i samme kolonne:
1 | Activecell.Offset (1,0) .Velg |
Slik flytter du over en kolonne, men holder deg på samme rad:
1 | Activecell.Offset (0,1) .Velg |
Slik går du nedover en rad og over en kolonne:
1 | Activecell.Offset (1,1) .Velg |
Slik går du opp en rad:
1 | Activecell.Offset (-1,0) .Velg |
Slik flytter du en kolonne til venstre:
1 | Activecell.Offset (0, -1) .Velg |
I prosedyren nedenfor går vi gjennom en rekke celler og beveger oss nedover en rad, og over en kolonne mens vi gjør løkken:
12345678 | Sub ActiveCellTest ()Dim x Som heltallOmråde ("A1"). VelgFor x = 1 til 10ActiveCell = xActiveCell.Offset (1, 1) .VelgNeste xSlutt Sub |
Resultatet av dette er vist i grafikken nedenfor:
Loop setter verdien av i (1-10) inn i Activecell, og deretter bruker den Activecell.Offset eiendom for å flytte ned en rad, og over en kolonne til høyre - gjenta denne løkken 10 ganger.
VBA -programmering | Kodegenerator fungerer for deg!
Bruke rekkeviddeobjekt med Activecell.Offset Select
Noen ganger kan det forvirre noen mennesker å bruke rekkeviddeobjektet med den aktive cellen.
Vurder følgende prosedyre:
1234 | Sub ActiveCellOffsetRange ()Område ("B1: B10"). VelgActiveCell.Offset (1, 1) .Range ("A1"). VelgSlutt Sub |
Med ActiveCell.Offset (1,1.Range ("A1") har området ("A1") blitt spesifisert. Dette betyr imidlertid ikke at celle A1 i arket vil bli valgt. Som vi har spesifisert området ("B1: B10"), celle A1 i dette området er faktisk celle B1 i arbeidsboken. Derfor blir cellen forskjøvet med 1 rad og 1 kolonne fra celle B1 IKKE fra celle A1.
Derfor er området ("A1 ′) i dette tilfellet ikke nødvendig, da makroen vil fungere på samme måte med den eller uten den.
Alternativer til ActiveCell
I stedet for å bruke Activecell med Offset -metoden, kan vi også bruke Range -objektet med Offset -metoden.
123 | Sub RangeOffset ()Område ("B1"). Offset (0, 1) .VelgSlutt Sub |
Fremgangsmåten ovenfor vil velge celle C1 i regnearket.