Dans cet article, nous allons créer une macro pour une union de plusieurs zones à une feuille spécifiée.

Les données brutes se composent de quelques exemples de données, qui incluent le nom et l’âge. Nous avons deux zones qui contiennent des données brutes. Nous voulons une union des deux zones à la feuille «Destination».

ArrowMain

Cliquer sur le bouton « Copier l’enregistrement » fera l’union des données des deux zones, ainsi que le formatage.

ArrowOutputRecord

Cliquer sur le bouton « Copier la valeur uniquement » fera également l’union des données des deux zones, mais sans copier le format de la cellule.

ArrowOutputValuesOnly

Explication du code

For Each Smallrng In Sheets (« Main »). Range (« A9: B13, D16: E20 »). Areas Next Smallrng La boucle For Each ci-dessus est utilisée pour boucler sur des zones définies.

Définissez DestRange = Sheets (« Destination »). Range (« A » & LastRow)

Le code ci-dessus est utilisé pour créer un objet de plage de la dernière cellule, où nous voulons copier les données.

Smallrng.Copy DestRange Le code ci-dessus est utilisé pour copier des données vers la destination spécifiée.

Veuillez suivre ci-dessous pour le code

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

Si vous avez aimé ce blog, partagez-le avec vos amis sur Facebook et Facebook.

Nous serions ravis de vous entendre, faites-nous savoir comment nous pouvons améliorer notre travail et le rendre meilleur pour vous. Écrivez-nous à [email protected]