この記事では、指定されたシートに複数の領域を結合するためのマクロを作成します。

生データは、名前と年齢を含むいくつかのサンプルデータで構成されています。生データを含む2つの領域があります。 「宛先」シートに両方の領域を結合する必要があります。

ArrowMain

「レコードのコピー」ボタンをクリックすると、フォーマットとともに、両方の領域からのデータの結合が行われます。

ArrowOutputRecord

「値のみをコピー」ボタンをクリックすると、両方の領域からのデータの結合も実行されますが、セルの形式はコピーされません。

ArrowOutputValuesOnly

コードの説明

For Each Smallrng In Sheets( “Main”)。Range( “A9:B13、D16:E20″)。Areas Next Smallrng上記のForEachループは、定義された領域でループするために使用されます。

Set DestRange = Sheets( “Destination”)。Range( “A”&LastRow)

上記のコードは、データをコピーする最後のセルの範囲オブジェクトを作成するために使用されます。

Smallrng.Copy DestRange上記のコードは、指定された宛先にデータをコピーするために使用されます。

コードについては以下に従ってください

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

このブログが気に入ったら、FacebookやFacebookで友達と共有してください。

皆様からのご意見をお待ちしております。私たちの仕事を改善し、あなたのために改善する方法をお知らせください。 [email protected]までご連絡ください