Offset cella attiva VBA

Questo tutorial dimostrerà come utilizzare Activecell Offset in VBA.

ActiveCell è una proprietà di VBA che rappresenta l'indirizzo di cella della cella attiva nel foglio di lavoro. Se il puntatore del mouse è posizionato nella cella A1, la proprietà ActiveCell in VBA restituirà l'indirizzo della cella "A1". Ci sono una serie di proprietà e metodi che sono connessi a ActiveCell. In questo articolo ci concentriamo sul metodo ActiveCell.Offset.

Proprietà e metodi ActiveCell.Offset

Activecell.Offset ha una serie di proprietà e metodi disponibili per essere programmati con VBA. Per visualizzare le proprietà e i metodi disponibili, digitare la seguente istruzione in una procedura come mostrato di seguito e premere il tasto punto sulla tastiera per visualizzare un elenco a discesa.

I metodi sono rappresentati dall'icona verde del metodo e le proprietà dall'icona a forma di mano piccola. Le proprietà ei metodi per il metodo Activecell.Offset sono gli stessi del metodo Activecell.

Sintassi ActiveCell.Offset

La sintassi di Activecell.Offset è la seguente

dove RowOffset e ColumnOffset è il numero di righe da compensare (numeri positivi per il basso, numero negativo per l'alto) o il numero di colonne che si desidera sfalsare (i numeri positivi si spostano a destra, il numero negativo a sinistra).

ActiveCell.Offset… Seleziona

Il Offset.cella attiva… Seleziona Il metodo è il metodo più comunemente utilizzato con il metodo Activecell.Offset. Ti consente di spostarti in un'altra cella del foglio di lavoro. Puoi utilizzare questo metodo per spostarti tra le colonne o le righe in alto o in basso nel foglio di lavoro.

Per scendere di una riga, ma rimanere nella stessa colonna:

1 Activecell.Offset(1,0).Seleziona

Per spostarti su una colonna, ma rimanere nella stessa riga:

1 Offset.cella attivo (0,1).Seleziona

Per spostarsi in basso di una riga e attraverso una colonna:

1 Offset.cella attivo (1,1).Seleziona

Per salire di una riga:

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

Per spostare una colonna a sinistra:

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

Nella procedura seguente, stiamo scorrendo un intervallo di celle e spostandoci verso il basso di una riga e attraverso una colonna mentre eseguiamo il ciclo:

12345678 Sub ActiveCellTest()Dim x As IntegerIntervallo("A1").SelezionaPer x = da 1 a 10ActiveCell = xActiveCell.Offset(1, 1).SelezionaAvanti xFine sottotitolo

Il cui risultato è mostrato nel grafico sottostante:

Il Loop inserisce il valore di i (1-10) nel Cellula attiva, e quindi usa il Offset.cella attiva proprietà per spostarsi in basso di una riga e su una colonna a destra, ripetendo questo ciclo 10 volte.

Programmazione VBA | Il generatore di codice funziona per te!

Utilizzo dell'oggetto intervallo con Activecell.Offset Select

L'uso dell'oggetto intervallo con la cella attiva a volte può confondere alcune persone.

Considera la seguente procedura:

1234 Sub ActiveCellOffsetRange()Intervallo ("B1: B10"). SelezionaActiveCell.Offset(1, 1).Range("A1").SelezionaFine sottotitolo

Con ActiveCell.Offset(1,1.Range("A1"), è stato specificato l'intervallo ("A1"). Tuttavia, ciò non significa che verrà selezionata la cella A1 nel foglio. Come abbiamo specificato l'intervallo ("B1: B10"), la cella A1 in quell'intervallo è in realtà la cella B1 nella cartella di lavoro. Pertanto la cella verrà compensata di 1 riga e 1 colonna da cella B1 NON dalla cella A1.

Pertanto, l'intervallo ("A1′) in questo caso non è richiesto poiché la macro funzionerà allo stesso modo con o senza di esso.

Alternative a ActiveCell

Invece di usare Activecell con il metodo Offset, possiamo anche usare l'oggetto Range con il metodo Offset.

123 Offset intervallo secondario()Intervallo ("B1"). Offset (0, 1). SelezionaFine sottotitolo

La procedura precedente selezionerebbe la cella C1 nel foglio di lavoro.

wave wave wave wave wave