Come navigare in un intervallo utilizzando vba?

Per scorrere un intervallo in VBA, è necessario utilizzare l’opzione “For Each Loop”. Usando questo ciclo, puoi scrivere codice in cui dici a VBA di passare attraverso ogni cella nell’intervallo, colonna o riga ed eseguire un’attività specifica.

 Sub vba_loop_range() Dim iCell As Range For Each iCell In Range("A1:A10").Cells   iCell.Value = "Yes" Next iCell End Sub

Ecco i passaggi per passeggiare in spiaggia:

  1. Innanzitutto, dichiara una variabile da utilizzare come cella dell’intervallo su cui eseguire il loop.
    loop-through-range
  2. Successivamente, avvia il ciclo “For Each” e utilizza la variabile “iCell” per rappresentare ciascuna cella nell’intervallo durante il ciclo.
    use-icell-variable
  3. Successivamente, devi scrivere una riga di codice per eseguire un’attività su ciascuna cella in cui eseguiamo il loop dell’intervallo.
    write-a-line-of-code
  4. Alla fine, termina il codice per un loop.
    end-the-code-for-a-loop

Ripeti l’intera colonna e una riga utilizzando VBA

Allo stesso modo, puoi scorrere ogni cella di seguito utilizzando il codice seguente che è identico al codice utilizzato nell’esempio precedente, l’unica differenza è l’intervallo che abbiamo specificato.

loop-through-the-intera-colonna-e-riga

Nota: prima di esaminare un’intera colonna o riga, dovresti comprendere che il ciclo potrebbe richiedere del tempo e Excel potrebbe bloccarsi per alcuni minuti.

 Sub vba_loop_range() Dim iCell As Range For Each iCell In Range("A:A").Cells   iCell.Value = "Yes" Next iCell End Sub

E allo stesso modo, puoi usare una linea intera come intervallo da percorrere.

 Sub vba_loop_range() Dim iCell As Range For Each iCell In Range("1:1").Cells   iCell.Value = "Yes" Next iCell End Sub

Passa attraverso la gamma dinamica

E se vuoi scorrere un intervallo dinamico di celle, fai riferimento al seguente codice.

loop attraverso la gamma dinamica
 Sub vba_dynamic_loop_range() Dim iCell As Range Dim iRange1 As String Dim iRange2 As String Dim rangeName As String iRange1 = ActiveCell.Address iRange2 = ActiveCell.Offset(5, 5).Address rangeName = iRange1 & ":" & iRange2 For Each iCell In Range(rangeName).Cells   iCell = "Yes" Next iCell End Sub

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *