Được rồi, tôi đã cố tìm các câu hỏi tương tự nhưng tôi không hiểu nhiều về những gì đang được thảo luận vì đây là lần đầu tiên tôi xem trình soạn thảo VBA của Excel.Kết hợp các bảng tính excel vào một bảng tính
Trong thuật ngữ đơn giản, tôi có 2 bảng: "Sheet1" và "Sheet2"
Sheet 1:
A B
1 Header1 Header2
2 Text1 Info1
3 Text2 Info2
Bảng 2:
A B
1 Header1 Header2
2 Text3 Info3
3 Text4 Info4
Và tôi muốn có một macro để hợp nhất hai trang tính thành một trang tính mới (Sheet3), như sau:
A B
1 Header1 Header2
2 Text1 Info1
3 Text2 Info2
4 Text3 Info3
5 Text4 Info4
Tôi đã thử ghi macro và lưu để sử dụng sau này. Để làm điều này, tôi đã tạo một trang tính mới, sao chép/dán mọi thứ từ Sheet1 đến Sheet3, sau đó sao chép tất cả thông tin ngoại trừ các tiêu đề từ Sheet2 đến Sheet3.
Vâng, macro hoạt động cho dữ liệu này, nhưng tôi thấy rằng mã được tạo bởi excel làm cho nó sao cho nó chọn ô A4 (ở đây) trước khi dán dữ liệu. Trong khi điều này làm việc cho dữ liệu này, nó sẽ không hoạt động nếu số lượng bản ghi trong mỗi tờ thay đổi ngay bây giờ và một lần nữa. Về cơ bản,
1) Tôi đã tự hỏi nếu có một chức năng tự động chuyển đến ô liên quan cuối cùng trước khi dán tập dữ liệu tiếp theo (trong ví dụ này, ô A4 và nếu tôi có thêm một bảng nữa, thì ô A6).
2) Tôi đã nhìn thấy hàm "ActiveCell.SpecialCells (xlLastCell) .Select" (được kích hoạt khi tôi sử dụng Ctrl + End) nhưng điều đó đưa tôi đến cuối trang tính. Tôi sẽ cần một cái gì đó tương tự như phím mũi tên "Home" và "Down" sau khi sử dụng chức năng đó để nó hoạt động tốt nhất.
Hoặc một trong các tùy chọn đó sẽ tốt với tôi.^_^
Dưới đây là code VBA hiện tại của tôi ghi lại từ ghi Macro trong excel 2010:
Sub Collate_Sheets()
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Select
Sheets(Sheets.Count).Name = "Sheet3"
Sheets("Sheet1").Select
Range("A1").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Copy
Sheets("Sheet3").Select
ActiveSheet.Paste
ActiveCell.SpecialCells(xlLastCell).Select
' I need to select one cell below, and the cell in column A at this point
Sheets("Sheet2").Select
Range("A2").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Sheet3").Select
ActiveSheet.Paste
End Sub
Tôi hy vọng tôi không quên bất cứ mẩu thông tin hữu ích. Hãy cho tôi biết nếu tôi đã làm!
Oh cảm ơn Doug! Tôi không biết diễn đàn đã chọn cú pháp đầy đủ làm nổi bật^^; – Jerry
Để lấy hàng bên dưới ô được sử dụng thực sự cuối cùng, bạn có thể viết 'Phạm vi (" A "& Rows.Count) .End (xlup) .Offset (1)'. Thay thế '" A "' bằng bất kỳ cột nào bạn cần. –
Bạn đang chào đón Jerry. Để làm nổi bật, chỉ cần đánh dấu mã của bạn và sau đó nhấp vào biểu tượng mã ở trên cùng. Nó trông giống như '{}'. –