Come utilizzare l'offset dell'intervallo in VBA (11 modi)

  • Condividi Questo
Hugh West

Se siete alla ricerca di alcuni dei modi più semplici per utilizzare VBA Offset dell'intervallo, allora troverete questo articolo degno di nota. Iniziamo con le modalità di utilizzo di VBA Offset di gamma.

Scarica il libro di lavoro

VBA Offset intervallo.xlsm

11 modi per utilizzare l'offset di intervallo in VBA

Ho la seguente tabella di dati che contiene le informazioni di alcuni studenti di un'università. Utilizzando questo set di dati, spiegherò i modi in cui si usa la funzione VBA Offset di gamma.

A questo scopo, ho utilizzato Microsoft Excel 365 è possibile utilizzare qualsiasi altra versione in base alle proprie esigenze.

Metodo 1: selezione di una cella mediante l'uso dell'intervallo in VBA

In questo caso, selezioneremo una cella contenente il nome Daniel Defoe. A questo scopo, si utilizzerà il metodo Funzione GAMMA in VBA .

Passo-01 :

Vai a Sviluppatore Scheda Visual Basic Opzione

Poi, il Editor Visual Basic si aprirà.

Vai a Inserire Scheda Modulo Opzione

Successivamente, un Modulo verrà creato.

Passo-02 :

➤Scrivete il seguente codice

 Sub SelectCell() Range("B8").Select End Sub 

Selezionerà la cella B8 .

➤Stampa F5

Risultato :

In questo modo, si otterrà la cella che contiene Daniel Defoe selezionato.

Per saperne di più: Come utilizzare l'oggetto Range di VBA in Excel

Metodo-2: selezione di un gruppo di celle contigue mediante l'uso di VBA Range

È possibile selezionare un intervallo di celle contigue, come nel caso dell'opzione Nome dello studente e la colonna Risultato nella tabella seguente, seguendo questo metodo.

Passo-01 :

➤Segui Passo-01 di Metodo-1

 Sub ContiguousCells() Range("B5:C10").Select End Sub 

Selezionerà le celle da B5 a C10 .

➤Stampa F5

Risultato :

Successivamente, si otterranno le celle in Colonna B e Colonna C selezionato.

Metodo 3: selezionare un gruppo di celle non contigue utilizzando l'intervallo in VBA

Si supponga di voler selezionare gli studenti denominati William David e Michael Anthony compresi i rispettivi Indirizzo e-mail Per selezionare le celle non congrue si può seguire questo metodo.

Passo-01 :

➤Segui Passo-01 di Metodo-1

 Sub nonContiguous() Range("B6,D6,B9,D9").Select Sub finale 

Selezionerà le celle B6 , D6 , B9, e D9 .

➤Stampa F5

Risultato :

Quindi, si otterranno le celle contenenti il nome dello studente William David , Michael Anthony, e i rispettivi Indirizzo e-mail selezionato.

Metodo 4: selezionare un gruppo di celle non contigue e un intervallo utilizzando VBA Range

Con questo metodo è possibile selezionare contemporaneamente un intervallo di celle e alcune celle non contigue.

Passo-01 :

➤Segui Passo-01 di Metodo-1

 Sub nonContiguouswithrange() Range("B5:B10,D6,D10").Select End Sub 

Selezionerà l'intervallo di celle nell'intervallo B5:B10 e le altre due celle D6 , D10 .

➤Stampa F5

Risultato :

Successivamente, si otterranno le celle della colonna Nome dello studente e due ID e-mail per William David e Donald Paul selezionato.

Metodo 5: selezionare un intervallo utilizzando l'offset dell'intervallo in VBA

È possibile selezionare un intervallo di celle nella finestra Colonna Nome dello studente utilizzando l'opzione Funzione OFFSET .

Passo-01 :

➤Segui Passo-01 di Metodo-1

 Sub selectrangeoffset() Range("A1:A6").Offset(4, 1).Select End Sub 

All'inizio, Intervallo("A1:A6") selezionerà l'intervallo A1:A6 e poi Offset(4, 1) si sposterà di 4 righe verso il basso dalla cella A1 e 1 colonna sul lato destro. Successivamente, il numero uguale di celle nell'intervallo A1:A6 sarà selezionato da qui.

➤Stampa F5

Risultato :

In questo modo, si selezionerà la colonna Nome dello studente .

Metodo-6: VBA Offset intervallo negativo

È possibile selezionare l'opzione Colonna ID e-mail seguendo questo metodo.

Passo-01 :

➤Segui Passo-01 di Metodo-1

 Sub negativerangeoffset() Range("F11:F16").Offset(-6, -2).Select End Sub 

All'inizio, Intervallo("F11:F16") selezionerà l'intervallo F11:F16 e poi Offset(-6, -2) si sposterà di 6 righe verso l'alto dalla cella F11 e 2 colonne sul lato sinistro. Successivamente, il numero uguale di celle nell'intervallo F11:F16 sarà selezionato da qui.

➤Stampa F5

Risultato :

Successivamente, sarà possibile selezionare la colonna Indirizzo e-mail .

Letture simili:

  • VBA per ogni cella dell'intervallo in Excel (3 metodi)
  • Come contare il testo in Excel (7 semplici trucchi)

Metodo 7: Selezione di un intervallo rispetto alla cella attiva

Qui abbiamo una cella attiva (cella A1 ) e rispetto a questa cella, selezioneremo l'intervallo di dati in questo metodo.

Passo-01 :

➤Segui Passo-01 di Metodo-1

 Sub actvcell() Range(activecell.Offset(4, 1), activecell.Offset(9, 3)).Select End Sub 

Qui, activecell è A1

La prima parte activecell.Offset(4, 1) selezionerà una cella 4 righe in basso e 1 colonna a destra dalla cella A1 e la seconda parte activecell.Offset(9, 3) selezionerà una cella 9 righe in basso e 3 colonne a destra della cella A1 .

Infine, verranno selezionate tutte le celle tra queste due celle.

➤Stampa F5

Risultato :

Sarà quindi possibile selezionare l'intero intervallo di dati.

Metodo-8: Copiare un intervallo

Se si desidera copiare un intervallo di celle, è possibile seguire questo metodo.

Passo-01 :

➤Segui Passo-01 di Metodo-1

 Sub copyrangeoffset() Range("A1:A6").Offset(4, 1).Copy End Sub 

All'inizio, Intervallo("A1:A6") selezionerà l'intervallo A1:A6 e poi Offset(4, 1) si sposterà di 4 righe verso il basso dalla cella A1 e 1 colonna a destra. Dopodiché, un numero uguale di celle nell'intervallo A1:A6 sarà selezionato da qui.

Infine, copierà i valori nell'intervallo B5:B10 .

➤Stampa F5

Risultato :

Successivamente, sarà possibile copiare l'intervallo di dati nel file Colonna Nome dello studente .

Metodo 9: Eliminazione di un intervallo

Qui mostreremo il modo in cui cancellare un intervallo di dati usando VBA codice.

Passo-01 :

➤Segui Passo-01 di Metodo-1

 Sub dltrangeoffset() Range("F11:F17").Offset(-7, -2).Delete End Sub 

In primo luogo, Intervallo("F11:F17") selezionerà l'intervallo F11:F17 e poi Offset(-7, -2) si sposterà di 7 righe verso l'alto dalla cella F11 e 2 colonne sul lato sinistro. Successivamente, il numero uguale di celle nell'intervallo F11:F17 sarà selezionato da qui.

Infine, eliminerà l'intervallo D4:D10 .

➤Stampa F5

Risultato :

In questo modo, si copierà l'intervallo di dati nel file Colonna ID e-mail .

Metodo 10: Utilizzo di VBA Range Offset per inserire un valore

Qui abbiamo una cella vuota (abbiamo rimosso il valore in questa cella per spiegare questo metodo) nel file Colonna Nome dello studente e vogliamo riempirlo con il nome Giuseppe Michele Utilizzando un VBA possiamo inserire facilmente questo valore.

Passo-01 :

➤Segui Passo-01 di Metodo-1

 Sub valuerangeoffset() Range("A1").Offset(6, 1).Value = "Joseph Michael" End Sub 

In primo luogo, Intervallo("A1") selezionerà la cella A1 e poi Offset(6, 1) si sposterà di 6 righe verso il basso dalla cella A1 e 1 colonna sul lato destro. Successivamente, la cella B7 sarà selezionato e, infine, inserirà il valore "Joseph Michael" in questa cella.

➤Stampa F5

Risultato :

In questo modo, si otterrà il nome Giuseppe Michele in cella B7 .

Metodo-11: utilizzo di VBA Range Offset per ottenere l'output

Supponiamo di voler scrivere Passato o Mancata corrispondenza ai nomi degli studenti a seconda della Colonna dei risultati dove Passo o Bocciatura è stato scritto in una parentesi. Per trovare questa sottostringa nel file Colonna dei risultati e scriverlo nel Colonna Pass/Fail seguire questo metodo.

Passo-01 :

➤Segui Passo-01 di Metodo-1

 Sub CheckSubstring() Dim cell As Range For Each cell In Range("C5:C10") If InStr(cell.value, "Pass")> 0 Then cell.Offset(0, 1).value = "Passed" Else cell.Offset(0, 1).value = "Failed" End If Next cell End Sub 

Qui, l'intervallo di celle C5:C10 è selezionato da Intervallo("C5:C10") che è il Colonna dei risultati

InStr(valore cella, "Passo")> 0 è la condizione in cui il numero è maggiore di zero (quando la cella contiene "Passo" ) allora la riga successiva continuerà e fornirà l'output nella cella adiacente come Passato In questo caso, la cella adiacente sarà selezionata da cella.offset(0, 1) , il che significa che si sposterà di 1 colonna a destra rispetto alla cella di input.

Se la condizione diventa falsa, significa che una cella non contiene alcun "Passo" allora la linea sotto Altro verrà eseguito e fornirà il valore di uscita nella cella adiacente come Fallito .

Questo ciclo continuerà per ogni cella.

➤Stampa F5

Risultato :

Si otterranno quindi le uscite Superato o bocciato nel Promosso/Fallito colonna.

Sezione pratica

Per fare pratica da soli, abbiamo messo a disposizione un Pratica come di seguito in un foglio chiamato Pratica . per favore, fatelo da soli.

Conclusione

In questo articolo, ho cercato di illustrare i modi più semplici per utilizzare VBA Spero che vi sia utile. Se avete suggerimenti o domande, non esitate a condividerli con noi.

Hugh West è un istruttore e analista di Excel di grande esperienza con oltre 10 anni di esperienza nel settore. Ha conseguito una laurea in Contabilità e Finanza e un Master in Economia Aziendale. Hugh ha una passione per l'insegnamento e ha sviluppato un approccio didattico unico che è facile da seguire e capire. La sua conoscenza approfondita di Excel ha aiutato migliaia di studenti e professionisti in tutto il mondo a migliorare le proprie competenze ed eccellere nella propria carriera. Attraverso il suo blog, Hugh condivide le sue conoscenze con il mondo, offrendo esercitazioni gratuite su Excel e formazione online per aiutare le persone e le aziende a raggiungere il loro pieno potenziale.