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.

  • 🎯 Definizione: L'oggetto Range punta a una singola cella, una riga, una colonna, una selezione o un intervallo tridimensionale.
  • 🧬 Gerarchia: Una referenza completa e qualificata recita Applicazione, Cartelle di lavoro, Fogli di lavoro, quindi Intervallo.
  • 🏷️ Proprietà e metodi: Una proprietà memorizza informazioni sull'oggetto, mentre un metodo esegue un'azione come Seleziona o Unisci.
  • 🔢 Proprietà delle cellule: Cells(Row, Column) indirizza una cella tramite il suo numero, il che si adatta bene a un ciclo di programmazione.
  • ✍️ Leggendo e scrivendo: La proprietà Value consente sia di recuperare il contenuto di una cella sia di riscriverne di nuovo.
  • ↔️ Proprietà di offset: L'offset sposta un riferimento di un determinato numero di righe e colonne rispetto alla cella di partenza.

Oggetto intervallo VBA di Excel

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

  1. La parola chiave "Intervallo".
  2. Parentesi che seguono la parola chiave
  3. Intervallo di celle pertinente
  4. 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.

Cella singola utilizzando la proprietà Worksheet.Range

Passo 2) In questa fase,

  • Fare clic su Cella singola utilizzando la proprietà Worksheet.Range 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.

Cella singola utilizzando la proprietà Worksheet.Range

Passo 3) Nel passaggio successivo,

  • Fare clic sul pulsante Macro Cella singola utilizzando la proprietà Worksheet.Range dal menu in alto. Si aprirà la finestra sottostante.
  • In questa finestra, fare clic sul pulsante "modifica".

Cella singola utilizzando la proprietà Worksheet.Range

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

Cella singola utilizzando la proprietà Worksheet.Range

Passo 5) Ora salva il file Cella singola utilizzando la proprietà Worksheet.Range ed eseguire il programma come mostrato di seguito.

Cella singola utilizzando la proprietà Worksheet.Range

Passo 6) Vedrai che la cella "A1" è selezionata dopo l'esecuzione del programma.

Cella singola utilizzando la proprietà Worksheet.Range

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

DOMANDE FREQUENTI

Utilizza Cells(Rows.Count, 1).End(xlUp).Row. Inizia dal fondo della colonna A e salta all'ultima cella contenente dati, risultando più affidabile di UsedRange dopo l'eliminazione delle righe.

Ogni operazione di lettura o scrittura coinvolge VBA ed Excel. Carica l'intervallo in un array con una singola assegnazione, elabora l'array in memoria e poi riscrivilo in un'unica istruzione. Anche disattivare ScreenUpdating può essere d'aiuto.

Solitamente si tratta di un indirizzo non valido, di un nome di foglio inesistente o di un tentativo di selezionare un intervallo su un foglio di lavoro non attivo. Specificare il riferimento con il foglio oppure attivare prima il foglio.

Sì. Incolla il codice registrato e un assistente AI sostituirà ogni coppia Select e Selection con un riferimento Range diretto e completo. Esegui entrambe le versioni su una copia e confronta il foglio prima di mantenerloping la modifica.

Sì. Descrivi l'obiettivo, ad esempio tutte le righe compilate nelle colonne da A a D del foglio Dati, e un assistente basato sull'IA restituirà l'espressione di intervallo corrispondente. Verificala su un piccolo campione prima di eseguirla sui dati reali.

Riassumi questo post con: