Regione attuale VBA

Questo tutorial spiegherà come utilizzare la regione corrente in VBA.

Il Regione attuale proprietà in VBA è un modo per selezionare tutte le celle contenute in un intervallo con cui potresti voler lavorare. Finché le celle all'interno dell'intervallo sono tutte consecutive o si "toccano" l'una con l'altra, il Regione attuale selezionerà ogni cella nella regione.

Sintassi della regione corrente

La sintassi è molto semplice:

1 Intervallo("E11").CurrentRegion.Select

dove specificare la cella di cui si desidera selezionare la regione corrente e quindi utilizzare il pulsante CurrentRegion.Select proprietà per selezionare l'intervallo di celle.

Ottenere la regione attuale

Considera il seguente foglio di lavoro.

la seguente sottoprocedura selezionerebbe tutte le celle all'interno del database

1234567 Sub TrovaRegione Attuale()Dim rng come intervallo'imposta l'intervallo su Cell E11'Imposta rng = Intervallo ("E11")'seleziona la regione attualerng.CurrentRegion.SelectFine sottotitolo

Se eseguiamo la routine, tutte le celle nel Regione attuale della cella E11 verrà selezionato.

Se rimuoviamo il contenuto delle celle adiacenti e rieseguiamo la routine, la seguente sarà selezionata come regione corrente.

Tuttavia, se rimuoviamo ancora più dati, potremmo finire con l'esempio seguente per la regione corrente della cella E11.

Inserendo le informazioni in D13, si ottiene quanto segue:

Il Regione attuale quindi restituisce un altro gamma oggetto definito dalla più piccola combinazione di colonne e righe occupate che circondano l'intervallo fornito.

Conteggio delle righe e delle colonne nella regione corrente

Possiamo usare Regione attuale contare le righe e le colonne.

12345678910111213 Sub TrovaRegione Attuale()Dim rng come intervalloDim iRw As IntegerDim iCol As Integer'imposta l'intervalloImposta rng = Intervallo ("E11")'conta le righeiRw = rng.CurrentRegion.Rows.Count'conta le colonneiCol = rng.CurrentRegion.Columns.Count'mostra il risultato in una finestra di messaggioMsgBox ("Abbiamo righe " & iRw & " e colonne " & iCol & " nella nostra regione attuale")Fine sottotitolo

Se eseguiamo la procedura, apparirà la seguente finestra di messaggio.

Cancellare la regione attuale

Possiamo anche usare la proprietà della regione corrente per cancellare l'intervallo di celle.

123456 Sub ClearCurrentRegion()Dim rng come intervallo'imposta l'intervalloImposta rng = Intervallo ("E11")rng.CurrentRegion.ClearFine sottotitolo

Assegnazione della regione corrente a una variabile

Possiamo anche assegnare l'intera regione corrente a una variabile di intervallo e quindi utilizzare quella variabile di intervallo per manipolare le celle, che si tratti di formattare le celle, ordinare le celle, ecc.

12345678910 Sub AssignCurrentRegionToVariable()Dim rng come intervallo'imposta l'intervallo come regione corrente di E11'Imposta rng = Range("E11").CurrentRegion'colora lo sfondo e il testorng.Interior.Pattern = xlSolidrng.Interior.Color = 65535rng.Font.Bold = Truerng.Font.Color = -16776961Fine sottotitolo

Se eseguiamo la procedura sopra, ci ritroveremo con un foglio di lavoro come mostrato di seguito!

Ottenere le celle di inizio e fine nella regione corrente

Con un codice leggermente più complicato, possiamo ottenere la prima cella e l'ultima cella in una regione corrente.

123456789101112131415161718 Sub GetStartAndEndCells()Dim rng come intervalloDim iRw As IntegerDim iCol As IntegerDim iColStart, iColEnd, iRwStart, iRwEnd As String'imposta la variabile di intervallo come regione corrente di E11'Imposta rng = Range("E11").CurrentRegion'imposta la colonna iniziale per l'intervalloiColStart = rng.Column'ottieni la colonna finale per l'intervalloiColEnd = iColStart + (rng.Columns.Count - 1)'ottieni la riga iniziale per l'intervalloiRwStart = rng.Row'ottieni la riga finale per l'intervalloiRwEnd = iRwStart + (rng.Rows.Count - 1)'visualizza l'indirizzo delle righe e delle colonne di inizio e fine in una finestra di messaggioMsgBox ("L'intervallo inizia da " & Cells(iRwStart, iColStart).Address & " e termina da " & Cells(iRwEnd, iColEnd).Address)Fine sottotitolo

Quando eseguiamo il codice sopra, apparirà la seguente finestra di messaggio

wave wave wave wave wave