Funkcija Excel VBA OFFSET
VBA Offset funkcija koristi se za pomicanje ili upućivanje na referencu koja preskače određeni broj redaka i stupaca, argumenti za ovu funkciju u VBA isti su kao i argumenti na radnom listu.
Na primjer, pretpostavimo da imate skup podataka poput dolje navedenog.

Sada se iz ćelije A1 želite pomaknuti prema dolje za 4 ćelije i želite odabrati tu petu ćeliju, tj. A5 ćeliju.
Slično tome, ako se želite pomaknuti prema dolje iz A1 ćelije za 2 retka i pomaknuti 2 stupca udesno i odabrati tu ćeliju, tj. C2 ćeliju.
U tim je slučajevima funkcija OFFSET vrlo korisna. Pogotovo u VBA OFFSET-u Funkcija je jednostavno fenomenalna.
OFFSET se koristi s objektom dometa u programu Excel VBA
U VBA ne možemo izravno unijeti riječ OFFSET. Prvo moramo upotrijebiti objekt VBA RANGE, a od tog objekta raspona možemo koristiti svojstvo OFFSET.
U Excelu, raspon nije ništa drugo do stanica ili raspon stanice. Budući da se OFFSET odnosi na stanice, prvo moramo upotrijebiti objekt RANGE, a zatim možemo koristiti metodu OFFSET.
Sintaksa OFFSET u VBA Excelu

- Pomak reda: koliko redaka želite pomaknuti iz odabrane ćelije. Ovdje je odabrana ćelija A1, tj. Opseg ("A1").
- Pomak stupca: Koliko stupaca želite pomaknuti iz odabrane ćelije. Ovdje je odabrana ćelija A, 1, tj. Opseg ("A1").
Primjeri
Primjer # 1
Uzmite u obzir podatke u nastavku, na primjer, demonstracije.

Sada želim odabrati ćeliju A6 iz ćelije A1. Pokrenite makronaredbu i referentnu ćeliju pomoću objekta Range.
Kodirati:
Sub Offset_Example1 () Raspon ("A1"). Offset (Kraj Sub

Sada želim odabrati ćeliju A6, tj. Želim smanjiti 5 stanica. Dakle, unesite 5 kao parametar za pomak reda.
Kodirati:
Sub Offset_Example1 () Raspon ("A1"). Offset (5 Kraj Sub

Budući da odabirem u istom stupcu, izostavljam dio stupca. Zatvorite nosač i stavite točku (.) I unesite metodu "Odaberi".
Kodirati:
Sub Offset_Example1 () Raspon ("A1"). Offset (5). Odaberite End Sub

Sada pokrenite ovaj kod pomoću tipke F5 ili možete pokrenuti ručno da biste odabrali ćeliju A6 kao što je prikazano u nastavku.

Izlaz:

Primjer # 2
Uzmite sada iste podatke, ali ovdje ćemo vidjeti kako upotrijebiti i argument pomicanja stupca. Sada želim odabrati ćeliju C5.
Budući da prvo želim odabrati ćeliju C5, želim se pomaknuti prema dolje za 4 ćelije i zauzeti desna 2 stupca da bih došao do ćelije C5. Ispod bi kod mene obavio posao.
Kodirati:
Sub Offset_Example2 () Raspon ("A1"). Pomak (4, 2). Odaberite End Sub

Ovaj kod pokrećem ručno ili pomoću tipke F5. Zatim će odabrati ćeliju C5, kao što je prikazano na donjem snimku zaslona.

Izlaz:

Primjer # 3
Vidjeli smo kako se pomiču redovi i stupci. Također možemo odabrati gore navedene stanice iz navedenih stanica. Na primjer, ako ste u ćeliji A10 i želite odabrati A1 ćeliju, kako to odabrati?
U slučaju pomicanja dolje po ćeliji, možemo unijeti pozitivan broj, pa ovdje u slučaju pomicanja prema gore, moramo unijeti negativne brojeve.
Iz ćelije A9 moramo se pomaknuti za 8 redaka, tj. -8.
Kodirati:
Sub Offset_Example1 () Raspon ("A9"). Offset (-8). Odaberite End Sub

Ako ovaj kôd pokrenete pomoću tipke F5 ili ga možete ručno pokrenuti, on će odabrati ćeliju A1 iz ćelije A9.

Izlaz:

Primjer # 4
Pretpostavimo da ste u ćeliji C8. Iz ove ćelije želite odabrati ćeliju A10.
Iz aktivne ćelije, l, tj. C8 ćelije, prvo se moramo pomaknuti prema dolje za 2 retka, a moramo se pomaknuti ulijevo za 2 stupca kako bismo odabrali ćeliju A10.
U slučaju pomicanja ulijevo za odabir stupca, moramo navesti da je broj negativan. Dakle, ovdje se moramo vratiti za -2 stupca.
Kodirati:
Sub Offset_Example2 () Raspon ("C8"). Pomak (2, -2). Odaberite End Sub

Sada pokrenite ovaj kôd pomoću tipke F5 ili pokrenite ručno, on će odabrati ćeliju A10 kako je prikazano dolje:

Izlaz:

Stvari koje treba zapamtiti
- U slučaju pomicanja redaka prema gore, moramo navesti broj u negativima.
- U slučaju pomicanja ulijevo za odabir stupca, broj bi trebao biti negativan.
- A1 ćelija je prvi redak i prvi stupac.
- Aktivna stanica znači trenutno odabrane stanice.
- Ako želite odabrati ćeliju pomoću OFFSET, morate spomenuti ".Select."
- Ako želite kopirati ćeliju pomoću OFFSET, morate spomenuti ".Copy."