La proprietà Offset (relativa all'oggetto Range).

Scarto, scartamento o spostamento, in Vba si chiama Offset .La sua sintassi è :

ActiveCell.Offset(0, 1).Select

oppure

Range("Tuorange").Offset(0, 3).Value

Un foglio di lavoro è composto da righe e colonne, e le celle vengono identificate dal loro "riferimento", cioè dalla lettera di colonna e dal numero di riga all'incrocio dei quali si trova una cella. Quindi la cella che si trova nella terza riga all'incrocio con la seconda colonna avrà il riferimento B3. (come in una "battaglia navale"). Si usa mettere nel riferimento, per prima la lettera che identifica la colonna, seguita senza spazi dal numero di riga. E' con questo sistema, quello dei riferimenti, che Excel ci consente di lavorare con i dati che saranno contenuti nelle celle. Usiamo infatti dei riferimenti quando compiliamo le nostre formule o le nostre macro, in questo modo "miriamo" con precisione alle celle che ci interessano. Esistono tuttavia situazioni nelle quali, pur "mirando" ad una cella, avremo bisogno di dati che si trovano non nella cella "mirata", ma in altre celle del foglio di lavoro, in genere contenenti dati correlati al dato contenuto nella cella "mirata". Possiamo fare un esempio: considerando di avere una tabella con un elenco di nomi (posti nelle righe della colonna A), per ogni nome: l'indirizzo (nella colonna B), la città (nella colonna C) il numero di telefono (nella colonna D). E di volere, dato un determinato nome, il suo numero di telefono. Cosa faremo? cercheremo con una procedura, il nome voluto, lo selezioneremo, e con l'uso di Offset andremo a pescare il numero di telefono che si trova sulla stessa riga, ma tre celle a destra rispetto alla cella in quel momento selezionata, per cui l'istruzione risulterebbe così:

ActiveCell.Offset(0, 3).Value

Ciò che faremo poi col numero di telefono così trovato non riguarda questa pagina, ma vediamo invece di capire l'istruzione Offset sopra esemplificata : abbiamo stabilito una cella di base (ActiveCell) e abbiamo detto ad Excel di volere il valore contenuto nella cella che si trova sulla stessa riga ma tre celle a destra rispetto alla cella selezionata. E questo l'abbiamo detto usando dei numeri : in una istruzione Offset, il primo numero identifica sempre la riga, il secondo numero identifica la colonna, rispetto ad una cella di riscontro. Abbiamo usato quindi lo Scarto. Le direzioni di Scostamento rispetto alla cella base, sono : a destra (positivo), a sinistra (negativo), sopra (negativo) o sotto (positivo). Utilizzando quindi un numero (positivo o negativo) per indicare la riga e un numero (negativo o positivo) per indicare la colonna, rispetto alla cella base, "pescheremo" il dato nella cella che ci interessa. Sotto, uno specchietto per capire come usare i riferimenti con Offset. Impostata la cella D7 come cella base, se volessimo "pescare"  i dati nella cella F8, useremmo Offset(1, 2) (una riga sotto, due colonne a destra) rispetto a D7. (per i riferimenti positivi non occorre usare il  +, per quelli negativi necessariamente andrà usato il - ) Con lo 0 (zero) si indica : nessun scarto, cioè stessa riga op. stessa colonna.