Đô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.

ArrowRaw

Để 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”.

ArrowMain

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.

ArrowOutput

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]