Przesunięcie Activecell VBA

Ten samouczek pokaże, jak używać Activecell Offset w VBA.

ActiveCell to właściwość VBA, która reprezentuje adres komórki aktywnej komórki w arkuszu. Jeśli wskaźnik myszy znajduje się w komórce A1, właściwość ActiveCell w VBA zwróci adres komórki „A1”. Istnieje szereg właściwości i metod, które są połączone z ActiveCell. W tym artykule koncentrujemy się na metodzie ActiveCell.Offset.

Właściwości i metody ActiveCell.Offset

Activecell.Offset ma wiele właściwości i metod, które można zaprogramować za pomocą VBA. Aby wyświetlić dostępne właściwości i metody, wpisz następującą instrukcję w poniższej procedurze i naciśnij klawisz kropki na klawiaturze, aby wyświetlić listę rozwijaną.

Metody są oznaczone zieloną ikoną metody, a właściwości małą ikoną rączki. Właściwości i metody metody Activecell.Offset są takie same jak w przypadku metody Activecell.

Składnia ActiveCell.Offset

Składnia Activecell.Offset jest następująca

gdzie RowOffset i ColumnOffset to liczba wierszy do przesunięcia (liczby dodatnie dla dołu, liczba ujemna dla góry) lub liczba kolumn, które chcesz przesunąć (liczby dodatnie są przesuwane w prawo, liczba ujemna w lewo).

Przesunięcie.aktywnej komórki… Wybierz

ten Przesunięcie.Aktywnejkomórki… Wybierz Metoda jest najczęściej stosowaną metodą dla metody Activecell.Offset. Pozwala przejść do innej komórki w arkuszu. Możesz użyć tej metody do poruszania się między kolumnami lub wierszami w górę lub w dół w arkuszu.

Aby przejść w dół o rząd, ale pozostać w tej samej kolumnie:

1 Activecell.Offset(1,0).Select

Aby poruszać się po kolumnie, ale pozostać w tym samym rzędzie:

1 Aktywnakomórka.Przesunięcie (0,1).Wybierz

Aby przejść w dół o wiersz i w poprzek kolumny:

1 Activecell.Offset (1,1).Wybierz

Aby przejść o rząd wyżej:

1 Aktywnakomórka.Przesunięcie(-1,0).Wybierz

Aby przejść w lewo o kolumnę:

1 Activecell.Offset(0,-1).Wybierz

W poniższej procedurze przechodzimy przez zakres komórek i przesuwamy się w dół o jeden wiersz i przez jedną kolumnę, wykonując pętlę:

12345678 Test podrzędnej komórki aktywnej()Dim x As IntegerZakres ("A1"). WybierzDla x = 1 do 10AktywnaKomórka = xPrzesunięcie aktywnej komórki (1, 1). WybierzNastępny xNapis końcowy

Wynik czego pokazano na poniższej grafice:

Pętla umieszcza wartość i (1-10) w Aktywna komórka, a następnie używa Activecell.Offset aby przejść o jeden wiersz w dół i przez jedną kolumnę w prawo - powtarzając tę ​​pętlę 10 razy.

Programowanie VBA | Generator kodu działa dla Ciebie!

Korzystanie z obiektu zakresu z Activecell.Offset Select

Używanie obiektu zakresu z aktywną komórką może czasami zmylić niektórych ludzi.

Rozważ następującą procedurę:

1234 Sub ActiveCellOffsetRange()Zakres ("B1: B10").WybierzActiveCell.Offset(1, 1).Range("A1").WybierzNapis końcowy

W przypadku ActiveCell.Offset(1,1.Range(„A1”) określono Zakres(„A1”). Nie oznacza to jednak, że zostanie wybrana komórka A1 w arkuszu. Ponieważ określiliśmy Zakres („B1:B10”), komórka A1 w tym zakresie jest w rzeczywistości komórką B1 w skoroszycie. Dlatego komórka zostanie przesunięta o 1 wiersz i 1 kolumnę od komórka B1 NIE z komórki A1.

Dlatego zakres („A1′”) w tym przypadku nie jest wymagany, ponieważ makro będzie działać w ten sam sposób z nim lub bez niego.

Alternatywy dla ActiveCell

Zamiast używać Activecell z metodą Offset, możemy również użyć obiektu Range z metodą Offset.

123 Przesunięcie podzakresu()Zakres("B1").Przesunięcie(0, 1).WybierzNapis końcowy

Powyższa procedura spowoduje zaznaczenie komórki C1 w arkuszu.

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave