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”.

ArrowMain

Facendo clic sul pulsante “Copia record” verrà eseguita l’unione dei dati da entrambe le aree, insieme alla formattazione.

ArrowOutputRecord

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.

ArrowOutputValuesOnly

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]