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