Sao chép một phạm vi có nhiều Khu vực hơn vào một trang tính được chỉ định bằng VBA trong Microsoft Excel
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”.
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.
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 ô.
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]