Sommario
Se lavorate con Microsoft Excel da un po' di tempo, conoscete l'importanza del riempimento automatico. Per copiare una formula su una riga o su una colonna, utilizziamo questo metodo. Ora, possiamo utilizzarlo manualmente con il mouse, ma se avete una riga di dati di grandi dimensioni, sarà difficile copiare una formula sull'ultima riga o sull'ultima colonna. Potete utilizzare il codice VBA per riempire automaticamente una formula sull'ultima riga o colonna confacilità.
In questa esercitazione imparerete a riempire automaticamente una formula nell'ultima riga di Excel utilizzando i codici VBA. Questa esercitazione sarà puntuale con esempi appropriati e illustrazioni corrette, quindi rimanete con noi.
Scarica il quaderno di esercizi
Formula di riempimento automatico dell'ultima riga.xlsm
Che cos'è il riempimento automatico in Excel?
Il riempimento automatico è una funzione integrata di Microsoft Excel che consente agli utenti di riempire automaticamente il resto delle righe o delle colonne con valori, formati o formule. È possibile identificarlo quando si porta il cursore nell'angolo inferiore destro di qualsiasi cella. Lo chiamiamo gestore di riempimento automatico di Excel.
Osservate la seguente schermata:
Qui si possono vedere due numeri. Il resto delle righe verrà riempito utilizzando il riempimento automatico di Excel.
Per prima cosa, selezionate l'intervallo di celle B5:B6, dopodiché vedrete la maniglia di riempimento automatico nell'angolo in basso a destra.
Ora, trascinare la maniglia di riempimento automatico verso il basso.
Come si può vedere, Excel ha riempito automaticamente il resto delle celle. Questo è l'uso di base del riempimento automatico in Excel.
Come utilizzare il riempimento automatico con Excel VBA
Se si dispone di un gran numero di righe o colonne in un determinato intervallo, è necessario trascinare la maniglia di riempimento automatico fino all'ultima riga o colonna. Si tratta di un processo molto frenetico. Fortunatamente è possibile ridurlo al minimo utilizzando i codici VBA di Excel. È possibile utilizzare il codice VBA per riempire automaticamente le celle con valori, formule o formati.
La sintassi generica:
Range.AutoFill Destinazione, Tipo
Qui,
Range("B5"): La cella che presenta il modello principale per riempire il resto della serie.
Destinazione: Intervallo di celle che si desidera riempire con la serie di modelli.
Tipo come xlAutoFillType: Il tipo di riempimento della serie. È possibile scegliere diversi tipi di riempimento automatico.
Per saperne di più: Come utilizzare il riempimento automatico VBA in Excel
4 tipi di riempimento automatico in Excel VBA
In questa sezione, verranno illustrati alcuni tipi di riempimento automatico. Abbiamo già visto che possiamo scegliere qualsiasi tipo di riempimento automatico utilizzando l'opzione xlAutoFillType. Qui vi mostro alcuni esempi.
1. xlFillDefault
Abbiamo già visto questo tipo di riempimento automatico nell'esempio precedente.
Date un'occhiata alla schermata:
Digitate il seguente codice VBA per riempire automaticamente le altre celle:
Sub xlDefault_type() Range("B5:B6").AutoFill Destinazione:=Range("B5:B11"), Tipo:=xlFillDefault Fine Sub
Ora eseguite la macro VBA e vedrete il seguente risultato:
Riempie automaticamente il resto delle celle utilizzando la macro VBA.
2. xlFillCopy
Per copiare gli stessi valori si può usare il tipo xlFillCopy nel tipo di riempimento automatico.
Date un'occhiata alla schermata:
Digitate il seguente codice VBA per riempire automaticamente le altre celle:
Sub xlFillCopy_type() Range("B5:B6").AutoFill Destinazione:=Range("B5:B11"), Tipo:=xlFillCopy Fine Sub
Ora eseguite la macro VBA e vedrete il seguente risultato:
Excel riempie il resto delle celle con lo stesso schema di valori.
3. xlFillMonths
È inoltre possibile riempire i mesi utilizzando il comando xlFillMonths tipo di riempimento automatico.
Date un'occhiata alla schermata:
Qui abbiamo inserito i due mesi di gennaio e febbraio.
Digitate il seguente codice VBA per riempire automaticamente le altre celle:
Sub xlFillMonths_type() Range("B5:B6").AutoFill Destinazione:=Range("B5:B11"), Tipo:=xlFillMonths Fine Sub
Ora eseguite la macro VBA e vedrete il seguente risultato:
Excel capisce automaticamente i modelli e li riempie.
4. xlFillFormats
È inoltre possibile copiare i formati in altre celle utilizzando il riempimento automatico di VBA. A tal fine, è necessario utilizzare l'opzione xlFillFormats tipo di riempimento automatico.
Date un'occhiata alla schermata:
Qui abbiamo riempito le due celle con alcuni colori.
Ora, digitate il seguente codice VBA per riempire automaticamente il resto delle celle:
Sub xlFillFormats_type() Range("B5:B6").AutoFill Destinazione:=Range("B5:B11"), Tipo:=xlFillFormats Fine Sub
Ora eseguite la macro VBA e vedrete il seguente risultato:
Come si può notare, la nostra macro VBA utilizza il riempimento automatico per riempire in modo efficace le righe della colonna B.
Per saperne di più: Come riempire automaticamente i mesi in Excel
5 esempi con la formula di riempimento automatico dell'ultima riga in Excel VBA
1. VBA per il riempimento automatico di una formula nell'ultima riga utilizzata
Allo stesso modo, è possibile riempire automaticamente una formula utilizzando il VBA. Se avete letto le sezioni precedenti, potete eseguire facilmente questa operazione. Il problema sorge quando dovete riempire automaticamente la formula fino all'ultima riga. Dovete prima identificare l'ultima riga utilizzata. Dopodiché, il codice VBA la riempirà automaticamente.
Osservate il seguente set di dati:
Abbiamo un set di dati sulle vendite di alcuni venditori. Il nostro obiettivo è quello di aggiungere le vendite di gennaio e febbraio alla colonna Totale. Successivamente, utilizzeremo il metodo di riempimento automatico utilizzando il VBA per l'ultima riga utilizzata in Excel.
Per eseguirlo, digitate il seguente codice:
Sub last_used_row() Dim last_row As Long last_row = Cells(Rows.Count, 2).End(xlUp).Row Range("E5").Formula = "=SUM(C5:D5)" Range("E5").AutoFill Destination:=Range("E5:E" & last_row) End Sub
last_row = Cells(Rows.Count, 2).End(xlUp).Row: Restituisce l'ultima riga utilizzata della colonna B. È possibile scegliere qualsiasi colonna del set di dati.
Range("E5").Formula = "=SOMMA(C5:D5)": Aggiungiamo le vendite di Cellula C5 e D5.
Range("E5").AutoFill Destinazione:=Range("E5:E" & last_row): Dopo aver ottenuto il risultato, utilizziamo l'autofill, che inizia a riempire automaticamente da Cellula E5 all'ultima riga utilizzata in precedenza.
Eseguite ora la macro VBA e vedrete il seguente risultato:
Come si può vedere, il nostro codice VBA aggiunge il primo risultato e il riempimento automatico della formula all'ultima riga di Excel.
Per saperne di più: Come riempire fino all'ultima riga con i dati in Excel
2. Riempimento automatico VBA da ActiveCell all'ultima riga
Ora, se non si desidera utilizzare un intervallo particolare nel metodo di riempimento automatico, è possibile utilizzare i valori, le formule o i formati della cella attiva. Quando si fa clic su una cella e si desidera riempire automaticamente il resto delle righe con la formula della cella attiva, utilizzare questo metodo.
È simile all'esempio precedente. Stiamo utilizzando il set di dati precedente:
Ora aggiungeremo le vendite di gennaio e febbraio e riempiremo automaticamente la formula nell'ultima riga utilizzando Excel VBA.
Ora, digitate il seguente codice:
Sub autofill_active_cell() Dim last_row As Long last_row = Cells(Rows.Count, 2).End(xlUp).Row ActiveCell.Formula = "=SUM(C5:D5)" ActiveCell.AutoFill Destination:=Range(ActiveCell.Address & ":E" & last_row) End Sub
last_row = Cells(Rows.Count, 2).End(xlUp).Row: Restituisce l'ultima riga utilizzata della colonna B. È possibile scegliere qualsiasi colonna del set di dati.
ActiveCell.Formula = "=SOMMA(C5:D5)": Aggiungiamo le vendite di Cellula C5 e D5 nella cella selezionata.
ActiveCell.AutoFill Destinazione:=Range(ActiveCell.Address & ":E" & last_row): Dopo aver ottenuto il risultato, utilizziamo il riempimento automatico, che inizia dalla cella attiva fino all'ultima riga utilizzata in precedenza.
Ora, selezionare Cellula E5 .
Successivamente, eseguire la macro VBA per aggiungere la formula e il riempimento automatico all'ultima riga.
Come si può vedere, abbiamo utilizzato con successo la macro VBA per riempire automaticamente la formula fino all'ultima riga.
Letture simili
- Come ripetere le righe per un numero specifico di volte in Excel (4 modi)
- Numerare automaticamente le righe in Excel (8 metodi)
- Come riempire le colonne di Excel con lo stesso valore (9 trucchi)
- Applicare la scorciatoia di riempimento automatico in Excel (7 metodi)
3. Riempimento automatico dell'ultima riga utilizzando l'intervallo dinamico con Excel VBA
In precedenza abbiamo mostrato alcune macro VBA per il riempimento automatico dell'ultima riga di Excel. In quegli esempi abbiamo già utilizzato intervalli dinamici.
Per comprendere gli intervalli statici, date un'occhiata al codice seguente:
Sub last_used_row() Range("E5").Formula = "=SUM(C5:D5)" Range("E5").AutoFill Destination:=Range("E5:E11") End Sub
In pratica abbiamo detto a Excel di inserire una formula in Cellula E5 e riempirlo automaticamente da Cellula E5 a Cellula E11 E se si aggiungono altre righe? In questo caso, il VBA non riempirà automaticamente le righe in più, perché gli abbiamo già detto di riempire automaticamente un intervallo specifico.
Per risolvere questo problema ho ideato una soluzione in grado di gestire una gamma dinamica:
Sub last_used_row() Dim last_row As Long last_row = Cells(Rows.Count, 2).End(xlUp).Row Range("E5").Formula = "=SUM(C5:D5)" Range("E5").AutoFill Destination:=Range("E5:E" & last_row) End Sub
Come si può vedere, con questa riga di codice troviamo prima l'ultima riga:
last_row = Cells(Rows.Count, 2).End(xlUp).Row
Dopodiché, il riempimento automatico fino all'ultima riga viene effettuato utilizzando l'intervallo dinamico:
Range("E5").AutoFill Destinazione:=Range("E5:E" & last_row)
Indipendentemente dal numero di righe aggiunte al dataset, questo codice VBA riuscirà a identificarle e a riempirle automaticamente con la formula.
Intervallo dinamico significa fondamentalmente che non è necessario inserire manualmente l'intervallo. Excel lo aggiornerà di volta in volta.
Per saperne di più: Excel VBA: Metodo di riempimento automatico della classe Range fallito
4. Riempimento automatico dell'ultima colonna in Excel con VBA
Se avete letto le sezioni precedenti per il riempimento automatico dell'ultima riga, allora potete riempire automaticamente l'ultima colonna con facilità. Dovete solo trovare il numero dell'ultima colonna e riempirla automaticamente con Excel VBA.
Osservate il seguente set di dati:
Abbiamo un set di dati che rappresenta il budget di 3 mesi di una persona. Ora, aggiungeremo le spese di tutti i mesi e riempiremo automaticamente la formula nell'ultima colonna utilizzando il VBA di Excel.
Ora, digitate il seguente codice:
Sub last_used_column() Dim last_row As Long last_column = Cells(6, Columns.Count).End(xlToLeft).Column Range("D9").Formula = "=SUM(D6:D8)" Range("D9").AutoFill Destination:=Range("D9", Cells(9, last_column)) End Sub
last_column = Cells(6, Columns.Count).End(xlToLeft).Column: Restituisce l'ultima colonna utilizzata dalla riga 6. È possibile scegliere qualsiasi riga da cui partire dal set di dati.
Range("D9").Formula = "=SOMMA(D6:D8)": Aggiungiamo le spese di tre mesi (gennaio, febbraio e marzo).
Range("D9").AutoFill Destinazione:=Range("D9", Cells(9, last_column)): Dopo aver ottenuto il risultato, utilizziamo il riempimento automatico. Qui, la nostra riga principale è la riga numero 9. Tutti i nostri dati saranno in questa riga. Il riempimento automatico inizia dalla colonna D all'ultima colonna utilizzata, ottenuta in precedenza con il metodo ultima_colonna .
Dopo aver eseguito la macro, verrà visualizzato il seguente risultato:
Come potete vedere, abbiamo utilizzato con successo il VBA per riempire automaticamente la formula dell'ultima colonna di Excel.
Per saperne di più: Come riempire automaticamente una colonna in Excel
5. Riempimento automatico di numeri sequenziali nell'ultima riga di Excel con VBA
È anche possibile riempire automaticamente i numeri sequenziali utilizzando l'autofill in VBA. In questo caso, è necessario usare xlFillSeries Excel capirà il modello e lo riempirà.
Date un'occhiata alla seguente schermata:
Abbiamo alcuni nomi e vogliamo assegnare loro un ID in modo sequenziale. Per farlo, utilizzeremo il riempimento automatico di VBA.
Compilazione automatica di numeri sequenziali con intervallo statico:
Sub numero_sequenziale_2() Range("C5").AutoFill Destinazione:=Range("C5:C11"), Tipo:=xlFillSeries Fine Sub
Dopo aver eseguito il codice, si vedrà l'output:
Se si desidera utilizzare la gamma dinamica, utilizzare il seguente codice:
Sub numero_sequenziale_1() Dim last_row As Long last_row = Cells(Rows.Count, 2).End(xlUp).Row Range("C5").AutoFill Destination:=Range("C5:C" & last_row), Type:=xlFillSeries End Sub
last_row = Cells(Rows.Count, 2).End(xlUp).Row: Restituisce l'ultima riga utilizzata della colonna B.
Range("C5").AutoFill Destinazione:=Range("C5:C" & last_row), Tipo:=xlFillSeries: Prenderà l'ID di Cellula C5 e riempire automaticamente l'ultima riga utilizzata nella colonna C utilizzando il xlFillSeries ,
In entrambi i casi, si otterrà lo stesso risultato:
Come potete vedere, abbiamo utilizzato con successo il codice VBA per riempire automaticamente i numeri sequenziali in Excel.
Per saperne di più: Formule di Excel per riempire i numeri di sequenza e saltare le righe nascoste
💬 Cose da ricordare
✎ È possibile interrompere il riempimento automatico in vari modi, se non lo si desidera .
✎ Non è possibile riempire automaticamente più righe e colonne contemporaneamente, ma è necessario farlo una alla volta.
Conclusione
Per concludere, spero che questo tutorial vi abbia fornito un po' di conoscenze utili per riempire automaticamente la formula dell'ultima riga utilizzando i codici VBA. Vi consigliamo di imparare e applicare tutte queste istruzioni al vostro set di dati. Scaricate la cartella di lavoro pratica e provatele voi stessi. Inoltre, sentitevi liberi di fornire un feedback nella sezione dei commenti. Il vostro prezioso feedback ci mantiene motivati a creare tutorial comequesto.
Non dimenticate di consultare il nostro sito web Exceldemy.com per vari problemi e soluzioni relativi a Excel.
Continuate a imparare nuovi metodi e a crescere!