Sao chép một cột hoặc các cột từ mỗi trang tính vào một trang tính bằng VBA trong Microsoft Excel
Đôi khi, việc sao chép dữ liệu từ nhiều trang tính cho cùng một cột trở thành công việc thường xuyên. Có thể tránh bước này bằng cách sử dụng tự động hóa. Nếu bạn muốn tạo một trang tính tổng hợp sau khi sao chép dữ liệu từ một cột của mỗi trang tính vào một trang tính, thì bạn nên đọc bài viết này.
Trong bài viết này, chúng ta sẽ tạo macro để sao chép dữ liệu từ một cột cụ thể và dán vào một trang tính mới.
Dữ liệu thô cho ví dụ này bao gồm dữ liệu nhân viên ở dạng sổ làm việc Excel chứa ba trang tính với các chi tiết liên hệ của nhân viên.
Để sao chép dữ liệu từ các trang tính khác nhau vào một trang tính mới, chúng tôi đã tạo một macro “CopyColumns”. Có thể chạy macro này bằng cách nhấp vào nút “Chạy macro” trên trang tính “Chính”.
Macro “CopyColumns” sẽ chèn một trang tính mới có tên là “Chính” sau trang tính “Chính”. Trang tính “Chính” sẽ chứa dữ liệu tổng hợp từ tất cả các trang tính.
Giải thích mã
Worksheets.Add (sau: = Worksheets (“Chính”))
Đoạn mã trên được sử dụng để chèn trang tính mới sau trang tính “Chính”.
If Source.Name <> “Master” Và Source.Name <> “Main” Then End If Trên mã được sử dụng để hạn chế sao chép dữ liệu từ trang tính “Chính” và “Chính”.
Source.UsedRange.Copy Destination.Columns (Cuối)
Đoạn mã trên được sử dụng để sao chép dữ liệu từ trang tính nguồn sang trang tính đích.
Đối với mỗi nguồn trong ThisWorkbook.Worksheets Nếu Source.Name = “Master” thì MsgBox “Master sheet đã tồn tại”
Thoát Sub End If Next Mã trên được sử dụng để kiểm tra xem trang tính “Chính” đã tồn tại trong sổ làm việc hay chưa. Macro sẽ ngừng thực thi nếu trang tính “Chính” đã tồn tại trong sổ làm việc.
Vui lòng theo dõi bên dưới để biết mã
Option Explicit Sub CopyColumns() Dim Source As Worksheet Dim Destination As Worksheet Dim Last As Long Application.ScreenUpdating = False 'Checking whether "Master" sheet already exists in the workbook For Each Source In ThisWorkbook.Worksheets If Source.Name = "Master" Then MsgBox "Master sheet already exist" Exit Sub End If Next 'Inserting new worksheets in the workbook Set Destination = Worksheets.Add(after:=Worksheets("Main")) 'Renaming the worksheet Destination.Name = "Master" 'Looping through the worksheets in the workbook For Each Source In ThisWorkbook.Worksheets If Source.Name <> "Master" And Source.Name <> "Main" Then 'Finding the last column from the destination sheet Last = Destination.Range("A1").SpecialCells(xlCellTypeLastCell).Column If Last = 1 Then 'Pasting the data in the destination sheet Source.UsedRange.Copy Destination.Columns(Last) Else Source.UsedRange.Copy Destination.Columns(Last + 1) End If End If Next Columns.AutoFit Application.ScreenUpdating = True 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]