Copiare un intervallo con più aree di un foglio specificato utilizzando VBA in Microsoft Excel
In questo articolo, creeremo una macro per l’unione di più aree in un foglio specificato.
I dati grezzi sono costituiti da alcuni dati di esempio, che includono Nome ed Età. Abbiamo due aree che contengono dati grezzi. Vogliamo un’unione di entrambe le aree al foglio “Destinazione”.
Facendo clic sul pulsante “Copia record” verrà eseguita l’unione dei dati da entrambe le aree, insieme alla formattazione.
Facendo clic sul pulsante “Copia solo valore” verrà anche eseguita l’unione dei dati da entrambe le aree, ma senza copiare il formato della cella.
Spiegazione del codice
For Each Smallrng In Sheets (“Main”). Range (“A9: B13, D16: E20”). Aree Next Smallrng Il ciclo For Each precedente viene utilizzato per loop su aree definite.
Set DestRange = Sheets (“Destination”). Range (“A” & LastRow)
Il codice sopra viene utilizzato per creare un oggetto intervallo dell’ultima cella, dove vogliamo copiare i dati.
Smallrng.Copy DestRange Il codice precedente viene utilizzato per copiare i dati nella destinazione specificata.
Segui sotto per il codice
Option Explicit Sub CopyMultiArea() 'Declaring variables Dim DestRange As Range Dim Smallrng As Range Dim LastRow As Long 'Looping through specified areas For Each Smallrng In Sheets("Main").Range("A9:B13,D16:E20").Areas 'Finding the row number of last cell LastRow = Sheets("Destination").Range("A1").SpecialCells(xlLastCell).Row + 1 'Selecting the cell where records need to be copy If LastRow = 2 Then Set DestRange = Sheets("Destination").Range("A" & LastRow - 1) Else Set DestRange = Sheets("Destination").Range("A" & LastRow) End If 'Copying records to specified destination range Smallrng.Copy DestRange Next Smallrng End Sub Sub CopyMultiAreaValues() 'Declaring variables Dim DestRange As Range Dim Smallrng As Range Dim LastRow As Long 'Looping through specified areas For Each Smallrng In Sheets("Main").Range("A9:B13,D16:E20").Areas 'Finding the row number of last cell LastRow = Sheets("Destination").Range("A1").SpecialCells(xlLastCell).Row + 1 With Smallrng 'Selecting the cell where records need to be copy If LastRow = 2 Then Set DestRange = Sheets("Destination").Range("A" & LastRow - 1).Resize(.Rows.Count, .Columns.Count) Else Set DestRange = Sheets("Destination").Range("A" & LastRow).Resize(.Rows.Count, .Columns.Count) End If End With 'Assigning the values from source to destination DestRange.Value = Smallrng.Value Next Smallrng End Sub
Se ti è piaciuto questo blog, condividilo con i tuoi amici su Facebook e Facebook.
Ci piacerebbe sentire la tua opinione, facci sapere come possiamo migliorare il nostro lavoro e renderlo migliore per te. Scrivici a [email protected]