Oggetto intervallo VBA di Excel
⚡ Riepilogo intelligente
L'oggetto Range di Excel VBA rappresenta una singola cella o un gruppo di celle in un foglio di lavoro. Questa pagina illustra la gerarchia degli oggetti, le proprietà Range e Cells, la selezione e il riferimento alle celle, la lettura e la scrittura dei valori e la proprietà Offset.

Cos'è la gamma VBA?
L'oggetto intervallo VBA rappresenta una cella o più celle nel foglio di lavoro Excel. È l'oggetto più importante di Excel VBA. Utilizzando l'oggetto intervallo VBA di Excel, è possibile fare riferimento a,
- Una singola cellula
- Una riga o una colonna di celle
- Una selezione di celle
- Una gamma 3D
Come discusso nel nostro tutorial precedente, VBA viene utilizzato per registrare ed eseguire un MacroMa come fa VBA a identificare quali dati del foglio di calcolo devono essere elaborati? È qui che entrano in gioco gli oggetti Range di VBA.
Introduzione al riferimento agli oggetti in VBA
Riferimento all'oggetto intervallo VBA di Excel e al qualificatore oggetto.
- Qualificatore di oggetti: viene utilizzato per fare riferimento all'oggetto. Specifica la cartella di lavoro o il foglio di lavoro a cui fai riferimento.
Per manipolare questi valori di cella, Proprietà a Confronto and Metodi sono usati.
- Proprietà: Una proprietà memorizza informazioni sull'oggetto.
- Metodo: Un metodo è un'azione dell'oggetto che eseguirà. L'oggetto dell'intervallo può eseguire azioni come selezionato, copiato, cancellato, ordinato, ecc.
VBA segue uno schema di gerarchia degli oggetti per fare riferimento a un oggetto in Excel. È necessario seguire la struttura riportata di seguito. Ricorda che il punto (.dot) collega l'oggetto a ciascuno dei diversi livelli.
Applicazione.Cartelle di lavoro.Fogli di lavoro.Intervallo
Tale gerarchia può essere raggiunta tramite due proprietà diverse, e la proprietà Range è quella più utilizzata.
Come fare riferimento all'oggetto Range VBA di Excel utilizzando la proprietà Range
La proprietà Range può essere applicata a due diversi tipi di oggetti.
- Oggetti del foglio di lavoro
- Oggetti di intervallo
Sintassi per la proprietà Range
- La parola chiave "Intervallo".
- Parentesi che seguono la parola chiave
- Intervallo di celle pertinente
- Quotazione (" ")
Application.Workbooks("Book1.xlsm").Worksheets("Sheet1").Range("A1")
Quando si fa riferimento all'oggetto Range, come mostrato sopra, viene indicato come riferimento pienamente qualificatoHai indicato a Excel esattamente l'intervallo desiderato, il foglio di lavoro e il foglio di lavoro in cui inserirlo.
Esempio: MessaggioBox Fogli di lavoro("Foglio1").Intervallo("A1").Valore
Utilizzando la proprietà Range, puoi eseguire molte attività come,
- Fare riferimento a una cella singola utilizzando la proprietà intervallo
- Fare riferimento a una cella singola utilizzando la proprietà Worksheet.Range
- Fare riferimento a un'intera riga o colonna
- Fai riferimento alle celle unite utilizzando la proprietà Worksheet.Range e molte altre
Pertanto sarebbe troppo lungo coprire tutti gli scenari relativi alle proprietà della gamma. Per gli scenari menzionati sopra, dimostreremo un esempio solo per uno. Fare riferimento a una cella singola utilizzando la proprietà intervallo.
Fare riferimento a una cella singola utilizzando la proprietà Worksheet.Range
Per fare riferimento a una cella, è necessario passare il suo indirizzo alla proprietà Range come stringa di testo.
La sintassi è semplice "Intervallo ("Cella")".
Qui utilizzeremo il comando ".Seleziona" per selezionare la singola cella dal foglio.
Passo 1) In questo passaggio, apri Excel.
Passo 2) In questa fase,
- Fare clic su
pulsante.
- Si aprirà una finestra.
- Inserisci qui il nome del tuo programma e fai clic sul pulsante "OK".
- Ti porterà al file Excel principale, dal menu in alto fai clic sul pulsante di registrazione "Interrompi" per interrompere la registrazione della macro.
Passo 3) Nel passaggio successivo,
- Fare clic sul pulsante Macro
dal menu in alto. Si aprirà la finestra sottostante.
- In questa finestra, fare clic sul pulsante "modifica".
Passo 4) Il passaggio precedente aprirà l'editor di codice VBA per il file denominato "Single Cell Range". Inserire il codice come mostrato di seguito per selezionare l'intervallo "A1" dal foglio Excel.
Sub SingleCellRange() Range("A1").Select End Sub
Passo 5) Ora salva il file ed eseguire il programma come mostrato di seguito.
Passo 6) Vedrai che la cella "A1" è selezionata dopo l'esecuzione del programma.
Allo stesso modo, puoi selezionare una cella con un nome particolare. Ad esempio, se vuoi cercare la cella con il nome "Guru99 - Tutorial VBA". Devi eseguire il comando come mostrato di seguito. Selezionerà la cella con quel nome.
Allineare("Guru99- Tutorial VBA”).Seleziona
Per applicare un altro oggetto di intervallo, ecco l'esempio di codice.
| Intervallo per la selezione della cella in Excel | Portata dichiarata |
|---|---|
| Per riga singola | Intervallo ("1:1") |
| Per colonna singola | Intervallo("A:A") |
| Per celle contigue | Intervallo ("A1:C5") |
| Per celle non contigue | Intervallo ("A1:C5, F1:F5") |
| Per Intersezione di due intervalli | Intervallo ("A1:C5 F1:F5") (Per la cella di intersezione, ricorda che non esiste l'operatore virgola) |
| Per unire Cell | Intervallo ("A1:C5") (Per unire le celle utilizzare il comando "unisci") |
Selezionare una cella è solo il primo passo. In pratica, una macro legge il contenuto di una cella e vi scrive un nuovo valore.
Come leggere e scrivere valori con l'oggetto Range
Quasi tutte le macro che interagiscono con un foglio di calcolo eseguono una di queste due operazioni: leggono un valore da una cella oppure lo scrivono al suo interno. Entrambe le operazioni passano attraverso la proprietà Valore e non richiedono che la cella sia selezionata in precedenza.
Sub ReadAndWrite() Dim Price As Double Dim Qty As Long ' Read two values out of the sheet Price = Range("B1").Value Qty = Range("B2").Value ' Write the calculated result back Range("B3").Value = Price * Qty ' Fill a whole block in one statement Range("D1:D10").Value = "Guru99" ' Clear only the contents, keeping the formatting Range("F1:F10").ClearContents End Sub
Quattro punti rendono questo schema affidabile.
- La selezione non è obbligatoria: Contenuti Range(“B3”).Value = 10 è più veloce e sicuro che selezionare prima la cella. Le macro registrate sono piene di .Select perché il registratore replica le azioni del mouse, non perché il codice ne abbia bisogno.
- Valore contro testo: .Value restituisce i dati sottostanti, mentre .Text restituisce la stringa formattata visualizzata sullo schermo, che può essere troncata in base alla larghezza della colonna. Leggere .Value nei calcoli.
- Interi blocchi in una sola riga: L'assegnazione a un intervallo multicella riempie tutte le celle contemporaneamente, il che è molto più veloce diping.
- Chiariamo la cosa giusta: ClearContents rimuove solo i valori, Clear rimuove anche la formattazione e Delete elimina le celle e sposta quelle circostanti.
La proprietà "Range" identifica una cella tramite la sua lettera e il suo numero. Una seconda proprietà, invece, identifica la stessa cella tramite due numeri.
Proprietà della cella
Analogamente alla gamma, in VBA È possibile utilizzare anche la proprietà "Cella". L'unica differenza è che ha una proprietà "elemento" che si utilizza per fare riferimento alle celle del foglio di calcolo. La proprietà "Cella" è utile in un ciclo di programmazione.
Per esempio,
Cells.item(Row, Column). Entrambe le righe seguenti si riferiscono alla cella A1.
- Cells.item(1,1) OPPURE
- Celle.elemento(1,”A”)
Differenza tra intervallo e celle in VBA
I metodi Range e Cells raggiungono le stesse celle del foglio di lavoro attraverso percorsi diversi, e la scelta corretta rende il codice più breve e più facile da leggere.
| Punto di differenza | Portata | Celle |
|---|---|---|
| Formato indirizzo | Una stringa di testo, Intervallo("A1") | Due numeri, Celle(1, 1) |
| Cellule multiple | Sì, intervallo(“A1:C5”) | Una cellula alla volta |
| All'interno di un ciclo | Richiede la concatenazione di stringhe | Il numero di riga può essere il contatore del ciclo |
| leggibilità | Corrisponde all'indirizzo visualizzato in Excel | La colonna 27 è più difficile da immaginare rispetto ad AA |
| Uso combinato | Range(Cells(1, 1), Cells(5, 3)) crea A1:C5 dai numeri | |
La regola pratica è di utilizzare Range per un indirizzo fisso che si può leggere a colpo d'occhio e Cells ogni volta che il numero di riga o di colonna viene calcolato in fase di esecuzione.
Proprietà Offset intervallo
La proprietà di offset dell'intervallo selezionerà le righe/colonne lontane dalla posizione originale. In base all'intervallo dichiarato vengono selezionate le celle. Vedi l'esempio qui sotto.
Per esempio,
Range("A1").Offset(RowOffset:=1, ColumnOffset:=1).Select
Il risultato sarà la cella B2. La proprietà Offset sposterà la cella A1 di 1 colonna e 1 riga. È possibile modificare il valore di RowOffset / ColumnOffset in base alle proprie esigenze. È possibile utilizzare un valore negativo (-1) per spostare le celle indietro.
Scarica Excel contenente il codice sopra
Scarica il file Excel qui sopra Code






