Activecell Offset VBA

Acest tutorial va arăta cum să utilizați Activecell Offset în VBA.

ActiveCell este o proprietate a VBA care reprezintă adresa celulei celulei active din foaia dvs. de lucru. Dacă indicatorul mouse-ului este poziționat în celula A1, atunci proprietatea ActiveCell din VBA va returna adresa celulei „A1”. Sunt o serie de proprietăți și metode care sunt conectate la ActiveCell. În acest articol ne concentrăm asupra metodei ActiveCell.Offset.

Proprietăți și metode ActiveCell.Offset

Activecell.Offset are o serie de proprietăți și metode disponibile pentru a fi programate cu VBA. Pentru a vizualiza proprietățile și metodele disponibile, tastați următoarea declarație într-o procedură așa cum se arată mai jos și apăsați tasta punct pe tastatură pentru a vedea o listă derulantă.

Metodele sunt descrise de pictograma metodă verde, iar proprietățile de pictograma mână mică. Proprietățile și metodele pentru metoda Activecell.Offset sunt aceleași ca și pentru metoda Activecell.

ActiveCell.Offset Syntax

Sintaxa Activecell.Offset este următoarea

unde RowOffset și ColumnOffset este numărul de rânduri de compensat (numere pozitive pentru jos, număr negativ pentru sus) sau numărul de coloane pe care doriți să le compensați (numere pozitive se deplasează la dreapta, număr negativ la stânga).

ActiveCell.Offset … Selectați

The Activecell.Offset … Selectați metoda este cea mai frecvent utilizată metodă cu Metoda Activecell.Offset. Vă permite să vă mutați într-o altă celulă din foaia de lucru. Puteți utiliza această metodă pentru a vă deplasa între coloane sau rânduri în sus sau în jos în foaia de lucru.

Pentru a vă deplasa în jos, dar rămâneți în aceeași coloană:

1 Activecell.Offset (1,0). Selectați

Pentru a vă deplasa pe o coloană, dar rămâneți în același rând:

1 Activecell.Offset (0,1). Selectați

Pentru a vă deplasa în jos pe un rând și pe o coloană:

1 Activecell.Offset (1,1). Selectați

Pentru a vă deplasa în sus:

1 Activecell.Offset (-1,0). Selectați

Pentru a muta o coloană la stânga:

1 Activecell.Offset (0, -1). Selectați

În procedura de mai jos, parcurgem o buclă printr-o gamă de celule și ne deplasăm în jos pe un rând și pe o coloană în timp ce facem bucla:

12345678 Sub ActiveCellTest ()Dim x Ca întregRange ("A1"). SelectațiPentru x = 1 până la 10ActiveCell = xActiveCell.Offset (1, 1). SelectațiUrmătorul xSfârșitul Sub

Rezultatul căruia este prezentat în graficul de mai jos:

Bucla plasează valoarea lui i (1-10) în Activecell, și apoi folosește Activecell.Offset proprietate pentru a vă deplasa în jos cu un rând și într-o coloană spre dreapta - repetând această buclă de 10 ori.

Programare VBA | Generatorul de coduri funcționează pentru dvs.!

Utilizarea Range Object cu Activecell.Offset Select

Utilizarea Range Object cu celula activă poate confunda uneori unele persoane.

Luați în considerare următoarea procedură:

1234 Sub ActiveCellOffsetRange ()Gama ("B1: B10"). SelectațiActiveCell.Offset (1, 1) .Gama ("A1"). SelectațiSfârșitul Sub

Cu ActiveCell.Offset (1,1.Range („A1”), Range („A1”) a fost specificat. Cu toate acestea, acest lucru nu înseamnă că celula A1 din foaie va fi selectată. După cum am specificat Range („B1: B10”), celula A1 din acest interval este de fapt celula B1 din registrul de lucru. Prin urmare, celula va fi compensată cu 1 rând și 1 coloană din celula B1 NU din celula A1.

Prin urmare, Range („A1 ′) în această instanță nu este necesar, deoarece macro-ul va funcționa în același mod cu el sau fără el.

Alternative la ActiveCell

În loc să folosim Activecell cu metoda Offset, putem folosi și obiectul Range cu metoda Offset.

123 Sub RangeOffset ()Gama ("B1"). Offset (0, 1). SelectațiSfârșitul Sub

Procedura de mai sus ar selecta celula C1 din foaia de lucru.

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave