Excel VBA OFFSET-funksjon
VBA Offset- funksjonen brukes til å flytte eller henvise til en referanse som hopper over et bestemt antall rader og kolonner. Argumentene for denne funksjonen i VBA er de samme som argumentene i regnearket.
Anta for eksempel at du har et sett med data som nedenfor.

Nå fra celle A1 vil du flytte ned 4 celler, og du vil velge den femte cellen, dvs. A5-cellen.
På samme måte, hvis du vil flytte deg ned fra A1 celle 2-rader og gå 2 kolonner til høyre og velge den cellen, dvs. C2-cellen.
I disse tilfellene er OFFSET-funksjonen veldig nyttig. Spesielt i VBA OFFSET er funksjonen bare fantastisk.
OFFSET brukes med Range Object i Excel VBA
I VBA kan vi ikke skrive inn ordet OFFSET direkte. Vi må først bruke VBA RANGE-objektet, og fra det rekkeviddeobjektet kan vi bruke OFFSET-egenskapen.
I excel er området ikke annet enn en celle eller et område av cellen. Siden OFFSET refererer til celler, må vi først bruke objektet RANGE, og deretter kan vi bruke OFFSET-metoden.
Syntaks for OFFSET i VBA Excel

- Radforskyvning: Hvor mange rader du vil forskyve fra den valgte cellen. Her er valgt celle A1, dvs. Range (“A1”).
- Kolonneforskyvning: Hvor mange kolonner du vil forskyve fra den valgte cellen. Her er valgt celle A, 1, dvs. Område (“A1”).
Eksempler
Eksempel 1
Tenk på dataene nedenfor, for eksempel demonstrasjon.

Nå vil jeg velge cellen A6 fra cellen A1. Start makro- og referansecellen ved hjelp av Range-objektet.
Kode:
Sub Offset_Example1 () Range ("A1") offset (End Sub

Nå vil jeg velge cellen A6, dvs. jeg vil gjøre ned 5 celler. Så skriv inn 5 som parameter for radforskyvning.
Kode:
Sub Offset_Example1 () Range ("A1") offset (5 End Sub

Siden jeg velger i samme kolonne, utelater jeg kolonnedelen. Lukk braketten og sett en prikk (.) Og skriv metoden "Velg".
Kode:
Sub Offset_Example1 () Range ("A1") Offset (5). Velg End Sub

Kjør nå denne koden ved hjelp av F5-tasten, eller du kan kjøre manuelt for å velge cellen A6 som vist nedenfor.

Produksjon:

Eksempel 2
Ta nå de samme dataene, men her vil du se hvordan du også bruker kolonneforskyvningsargumentet. Nå vil jeg velge cellen C5.
Siden jeg først vil velge celle C5, vil jeg flytte ned 4 celler og ta de rette 2 kolonnene for å nå cellen C5. Koden nedenfor vil gjøre jobben for meg.
Kode:
Sub Offset_Example2 () Range ("A1") Offset (4, 2). Velg End Sub

Jeg kjører denne koden manuelt eller ved hjelp av F5-tasten. Deretter vil den velge cellen C5, som vist på skjermbildet nedenfor.

Produksjon:

Eksempel 3
Vi har sett hvordan vi skal kompensere rader og kolonner. Vi kan også velge cellene ovenfor fra de spesifiserte cellene. For eksempel, hvis du er i cellen A10 og du vil velge A1-celle, hvordan velger du det?
I tilfelle vi beveger oss nedover cellen, kan vi angi et positivt tall, så her i tilfelle vi beveger oss opp, må vi oppgi negative tall.
Fra A9-celle må vi bevege oss opp med 8 rader, dvs. -8.
Kode:
Sub Offset_Example1 () Range ("A9") Offset (-8). Velg End Sub

Hvis du kjører denne koden ved hjelp av F5-tasten, eller hvis du kan kjøre denne koden manuelt, vil den velge cellen A1 fra A9-cellen.

Produksjon:

Eksempel 4
Anta at du er i cellen C8. Fra denne cellen vil du velge cellen A10.
Fra den aktive cellen, dvs. C8-cellen, må vi først flytte ned to rader, og vi må flytte til venstre med to kolonner for å velge cellen A10.
I tilfelle du flytter til venstre for å velge kolonnen, må vi spesifisere at tallet er negativt. Så her må vi komme tilbake med -2 kolonner.
Kode:
Sub Offset_Example2 () Range ("C8"). Offset (2, -2). Velg End Sub

Kjør nå denne koden ved hjelp av F5-tasten eller kjør manuelt, den vil velge A10-celle som vist nedenfor:

Produksjon:

Ting å huske
- I tilfelle flytting opp av rader, må vi spesifisere antallet i negative.
- Hvis du går til venstre for å velge kolonnen, bør tallet være negativt.
- A1-celle er første rad og første kolonne.
- Aktiv celle betyr for tiden utvalgte celler.
- Hvis du vil velge cellen ved hjelp av OFFSET, må du nevne ".Velg."
- Hvis du vil kopiere cellen ved hjelp av OFFSET, må du nevne ".Copy."