Trong bài viết này, chúng tôi sẽ tạo một macro cho sự kết hợp của nhiều vùng vào một trang tính cụ thể.

Dữ liệu thô bao gồm một số dữ liệu mẫu, bao gồm Tên và Tuổi. Chúng tôi có hai khu vực chứa dữ liệu thô. Chúng tôi muốn kết hợp cả hai khu vực vào trang tính “Điểm đến”.

ArrowMain

Nhấp vào nút “Sao chép Bản ghi” sẽ thực hiện kết hợp dữ liệu từ cả hai khu vực, cùng với định dạng.

ArrowOutputRecord

Nhấp vào nút “Chỉ sao chép giá trị” cũng sẽ thực hiện kết hợp dữ liệu từ cả hai khu vực, nhưng không sao chép định dạng của ô.

ArrowOutputValuesOnly

Giải thích mã

For Each Smallrng In Sheets (“Chính”). Phạm vi (“A9: B13, D16: E20”). Các khu vực Tiếp theo Smallrng Vòng lặp For Each ở trên được sử dụng để lặp trên các khu vực xác định.

Đặt DestRange = Sheets (“Destination”). Range (“A” & LastRow)

Đoạn mã trên được sử dụng để tạo một đối tượng phạm vi của ô cuối cùng, nơi chúng ta muốn sao chép dữ liệu.

Smallrng.Copy DestRange Đoạn mã trên được sử dụng để sao chép dữ liệu đến đích được chỉ định.

Vui lòng theo dõi bên dưới để biết mã

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

Nếu bạn thích blog này, hãy chia sẻ nó với bạn bè của bạn trên Facebook và Facebook.

Chúng tôi rất muốn nghe ý kiến ​​từ bạn, hãy cho chúng tôi biết cách chúng tôi có thể cải thiện công việc của mình và làm cho nó tốt hơn cho bạn. Viết thư cho chúng tôi [email protected]