Compilazione automatica in VBA
Questo articolo illustra come utilizzare il riempimento automatico in VBA.
Il riempimento automatico è un ottimo strumento in Excel quando i dati sono ripetitivi o sequenziali (come giorni della settimana, date, mesi dell'anno, ecc.). Normalmente riempiremmo la prima coppia di celle con i dati richiesti, quindi utilizzeremmo il riempimento automatico per copiare i dati richiesti in un intervallo selezionato.
Tutto questo può essere fatto usando una macro VBA.
Compilazione automatica utilizzando numeri incrementali
Innanzitutto, nel nostro codice, possiamo dichiarare due variabili Range.
Selezione1 è l'intervallo con i dati da compilare automaticamente, ad esempio 1 e 2.
Selezione2 è il intero intervallo per il riempimento automatico, questo include il primo intervallo più gli spazi vuoti per il riempimento automatico.
Utilizziamo quindi il metodo di riempimento automatico per riempire il secondo intervallo di selezione.
123456789101112131415 | Public Sub MyAutoCompilazione()"da easyexcel.net""Dichiara variabili di intervallo"Selezione attenuazione1 come intervalloSelezione dim2 come intervallo'Imposta variabili di intervallo = i rispettivi intervalliImposta selezione1 = Foglio1.Intervallo("A1:A2")Imposta selezione2 = Foglio1.Intervallo("A1:A12")"Compilazione automatica"selezione1.Riempimento automatico Destinazione:=selezione2Fine sottotitolo |
Possiamo quindi eseguire la macro su Intervallo di riempimento automatico (A1: A12).
Quando utilizziamo il metodo di riempimento automatico, possiamo selezionare il tipo di riempimento automatico che desideriamo eseguire. Nell'esempio sopra, non abbiamo specificato il tipo di Compilazione automatica, il che significa che è stato utilizzato il tipo predefinito, in questo caso, incrementando i numeri di 1 su ciascuna riga.
Compilazione automatica utilizzando i mesi
La macro per il riempimento automatico utilizzando i mesi è quasi identica a quella utilizzata per incrementare i numeri, con un'importante eccezione.
1234567891011 | Compilazione automatica secondaria pubblicaMesi()"da easyexcel.net""Dichiara variabili di intervallo"Selezione attenuazione1 come intervalloSelezione dim2 come intervallo'Imposta variabili di intervallo = i rispettivi intervalliImposta selezione1 = Foglio1.Intervallo("A1:A2")Imposta selezione2 = Foglio1.Intervallo("A1:A12")"Compila automaticamente i mesi"Destinazione riempimento automatico:=selezione2, Tipo:=xlFillMesiFine sottotitolo |
Quando compiliamo il tipo di riempimento automatico, ci viene fornito un numero di costanti di Excel tra cui scegliere. Se lo tralasciamo, Excel determinerà il tipo di dati da compilare dai dati originali forniti.
Excel è in grado di raccogliere serie standard come mesi, giorni della settimana e numeri incrementali senza la necessità di utilizzare l'argomento Tipo.
Compilazione automatica utilizzando xlFillCopy
Se vogliamo usare una macro di riempimento automatico per copiare le informazioni su nuove celle, possiamo usare la xlFillCopy Constant.
1234567 | Compilazione automatica secondaria pubblica ()Dim Selection1 come intervalloDim Selection2 come intervalloImposta Selezione1 = Foglio1.Intervallo("A1:A1")Imposta Selezione2 = Foglio1.Intervallo("A1:A12")Selezione1.Riempimento automatico Destinazione:=Selezione2, Tipo:=xlFillCopyFine sottotitolo |
L'esecuzione di questa macro copierebbe i dati in Range ("A1") fino a Range ("A1: A12") anziché riempire automaticamente le celle con i mesi successivi da "Jan".
Compilazione automatica utilizzando xlFlashFill
Quando abbiamo bisogno di convertire il testo in colonne in Excel, possiamo utilizzare l'opzione text to columns oppure possiamo usare un'opzione chiamata Flash Fill. Questo è estremamente utile in VBA.
Prendiamo ad esempio i seguenti dati:
Possiamo digitare il cognome "Tolley" nella cella B2 e quindi utilizzare una macro per Flashfill il resto dei dati.
1234567 | Sub FlashFill()Dim Selection1 come intervalloDim Selection2 come intervalloImposta Selezione1 = Intervallo("B2:B2")Imposta Selezione2 = Intervallo("B2:B15")Selezione1.Riempimento automatico Destinazione:=Selezione2, Tipo:=xlFlashFillFine sottotitolo |
Possiamo quindi ripetere queste colonne C, D ed E per ottenere i dati rimanenti.
1234567891011 | Imposta Selezione1 = Intervallo("C2:C2")Imposta Selezione2 = Intervallo("C2:C15")Selezione1.Riempimento automatico Destinazione:=Selezione2, Tipo:=xlFlashFillImposta Selezione1 = Intervallo("D2:D2")Imposta Selezione2 = Intervallo("D2:D15")Selezione1.Riempimento automatico Destinazione:=Selezione2, Tipo:=xlFlashFillImposta Selezione1 = Intervallo ("E2:E2")Imposta Selezione2 = Intervallo("E2:E15")Selezione1.Riempimento automatico Destinazione:=Selezione2, Tipo:=xlFlashFill |
Ogni colonna si riempirà quindi con i dati appropriati in base al valore nella riga 2.