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.