PRZESUNIĘCIE VBA

Funkcja Excel VBA OFFSET

Funkcja VBA Offset służy do przenoszenia lub odwoływania się do odniesienia pomijając określoną liczbę wierszy i kolumn, argumenty tej funkcji w VBA są takie same, jak argumenty w arkuszu.

Na przykład załóżmy, że masz zestaw danych podobny do poniższego.

Teraz z komórki A1 chcesz przesunąć się o 4 komórki w dół i chcesz wybrać tę piątą komórkę, tj. Komórkę A5.

Podobnie, jeśli chcesz przejść w dół z 2 wierszy komórki A1 i przejść do 2 kolumn w prawo i wybrać tę komórkę, tj. Komórkę C2.

W takich przypadkach funkcja OFFSET jest bardzo pomocna. Zwłaszcza w VBA OFFSET Funkcja jest po prostu fenomenalna.

OFFSET jest używany z obiektem Range w Excel VBA

W VBA nie możemy bezpośrednio wpisać słowa OFFSET. Musimy najpierw użyć obiektu VBA RANGE iz tego obiektu zakresu możemy użyć właściwości OFFSET.

W zakresie programu Excel to nic innego jak komórka lub zakres komórki. Ponieważ OFFSET odnosi się do komórek, musimy najpierw użyć obiektu RANGE, a następnie możemy użyć metody OFFSET.

Składnia OFFSET w VBA Excel

  • Przesunięcie wierszy: ile wierszy chcesz odsunąć od wybranej komórki. Tutaj wybrana komórka to A1, tj. Zakres („A1”).
  • Przesunięcie kolumn: ile kolumn chcesz odsunąć od wybranej komórki. Tutaj wybrana komórka to A1, tj. Zakres („A1”).

Przykłady

Możesz pobrać ten szablon VBA OFFSET tutaj - szablon VBA OFFSET

Przykład 1

Rozważ poniższe dane, na przykład demonstrację.

Teraz chcę wybrać komórkę A6 z komórki A1. Uruchom makro i komórkę odniesienia przy użyciu obiektu Range.

Kod:

 Sub Offset_Example1 () Range ("A1"). Offset (End Sub 

Teraz chcę wybrać komórkę A6, czyli chcę zrobić w dół 5 komórek. Więc wprowadź 5 jako parametr dla parametru Przesunięcie wiersza.

Kod:

 Sub Offset_Example1 () Range ("A1"). Offset (5 End Sub 

Ponieważ wybieram w tej samej kolumnie, pomijam część kolumnową. Zamknij nawias i umieść kropkę (.) I wpisz metodę „Wybierz”.

Kod:

 Sub Offset_Example1 () Range ("A1"). Offset (5). Wybierz End Sub 

Teraz uruchom ten kod za pomocą klawisza F5 lub możesz uruchomić ręcznie, aby wybrać komórkę A6, jak pokazano poniżej.

Wynik:

Przykład nr 2

Teraz weź te same dane, ale tutaj zobaczymy również, jak używać argumentu przesunięcia kolumny. Teraz chcę zaznaczyć komórkę C5.

Ponieważ chcę najpierw wybrać komórkę C5, chcę przesunąć się o 4 komórki w dół i wybrać 2 kolumny w prawo, aby dotrzeć do komórki C5. Poniższy kod załatwi sprawę za mnie.

Kod:

 Sub Offset_Example2 () Range („A1”). Offset (4, 2). Select End Sub 

Uruchomię ten kod ręcznie lub za pomocą klawisza F5, a następnie wybierze komórkę C5, jak pokazano na poniższym zrzucie ekranu.

Wynik:

Przykład nr 3

Widzieliśmy, jak przesuwać wiersze i kolumny. Możemy również wybrać powyższe komórki z określonych komórek. Na przykład, jeśli jesteś w komórce A10 i chcesz wybrać komórkę A1, w jaki sposób wybierasz?

W przypadku poruszania się w dół komórki możemy wpisać liczbę dodatnią, więc w przypadku przejścia w górę musimy wpisać liczby ujemne.

Z komórki A9 musimy przejść w górę o 8 rzędów, czyli -8.

Kod:

 Sub Offset_Example1 () Range ("A9"). Offset (-8). Select End Sub 

Jeśli uruchomisz ten kod za pomocą klawisza F5 lub możesz uruchomić ten kod ręcznie, wybierze komórkę A1 z komórki A9.

Wynik:

Przykład 4

Załóżmy, że jesteś w celi C8. Z tej komórki chcesz wybrać komórkę A10.

Z aktywnej komórki, czyli komórki C8, musimy najpierw przesunąć się o 2 rzędy w dół i musimy przejść w lewo o 2 kolumny, aby wybrać komórkę A10.

W przypadku przesuwania się w lewo, aby wybrać kolumnę, musimy podać liczbę ujemną. Więc tutaj musimy cofnąć się o -2 kolumny.

Kod:

 Sub Offset_Example2 () Range ("C8"). Offset (2, -2). Select End Sub 

Teraz uruchom ten kod za pomocą klawisza F5 lub uruchom ręcznie, wybierze komórkę A10, jak pokazano poniżej:

Wynik:

Rzeczy do zapamiętania

  • W przypadku przesuwania się wierszy w górę musimy podać liczbę w negatywie.
  • W przypadku przesuwania się w lewo, aby wybrać kolumnę, liczba powinna być ujemna.
  • Komórka A1 to pierwszy wiersz i pierwsza kolumna.
  • Aktywna komórka oznacza aktualnie wybrane komórki.
  • Jeśli chcesz zaznaczyć komórkę za pomocą OFFSET, musisz wspomnieć o „.Select”.
  • Jeśli chcesz skopiować komórkę za pomocą OFFSET, musisz wspomnieć o „.Copy”.