Sao chép các ô từ Hàng ActiveCell sang trang Cơ sở dữ liệu bằng VBA trong Microsoft Excel
Trong Microsoft Excel, chúng tôi có thể sao chép các ô từ hàng ô hoạt động sang một trang tính cụ thể. Trong bài viết này, chúng tôi sẽ sử dụng mã VBA để chuyển dữ liệu từ mọi trang tính và hợp nhất dữ liệu thành một trang tính. Chúng tôi sẽ thêm một trang tính Chính trong sổ làm việc và lưu dữ liệu từ phạm vi được chỉ định vào một trang tính.
_Các mã ví dụ sẽ sao chép vào một trang cơ sở dữ liệu với tên là Sheet2.
Mỗi khi chúng ta chạy macro, các ô sẽ được đặt bên dưới hàng cuối cùng với dữ liệu sau Cột cuối cùng trong sheet2. Macro này sẽ sao chép các ô từ Cột A, D từ ActiveCell._
Sau đây là hình ảnh của dữ liệu mẫu:
Để sao chép các ô từ hàng activecell sang Sheet2; chúng ta cần làm theo các bước sau để khởi chạy trình soạn thảo VB:
Nhấp vào tab Nhà phát triển Từ nhóm Mã chọn Visual Basic
===
-
Nhấp vào Chèn rồi đến Mô-đun
Thao tác này sẽ tạo mô-đun mới Nhập mã sau vào Mô-đun chuẩn
Sub CopyCells() Dim sourceRange As Range Dim destrange As Range Dim Lr As Long Lr = LastRow(Sheets("Sheet2")) + 1 Set sourceRange = Sheets("Sheet1").Cells( _ ActiveCell.Row, 1).Range("A1:D1") Set destrange = Sheets("Sheet2").Range("A" & Lr) sourceRange.Copy destrange End Sub
Sub CopyCellsValues() Dim sourceRange As Range Dim destrange As Range Dim Lr As Long Lr = LastRow(Sheets("Sheet2")) + 1 Set sourceRange = Sheets("Sheet1").Cells( _ ActiveCell.Row, 1).Range("A1:D1") With sourceRange Set destrange = Sheets("Sheet2").Range("A" _ & Lr).Resize(.Rows.Count, .Columns.Count) End With destrange.Value = sourceRange.Value End Sub
Function LastRow(sh As Worksheet) On Error Resume Next LastRow = sh.Cells.Find(What:="*", _ After:=sh.Range("A1"), _ Lookat:=xlPart, _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Row On Error GoTo 0 End Function
Function Lastcol(sh As Worksheet) On Error Resume Next Lastcol = sh.Cells.Find(What:="*", _ After:=sh.Range("A1"), _ Lookat:=xlPart, _ LookIn:=xlFormulas, _ SearchOrder:=xlByColumns, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Column On Error GoTo 0 End Function
===
Để kiểm tra mã VBA trên; thêm dữ liệu trong phạm vi “A1: D1” và sau đó chạy macro bằng cách nhấn phím tắt F5 Dữ liệu được lưu trữ trong phạm vi được chỉ định sẽ được sao chép vào “Sheet2” bắt đầu từ A1
-
Nếu chúng ta chạy lại macro này; dữ liệu sẽ được lưu trong hàng tiếp theo; tham khảo hình ảnh bên dưới:
Chúng ta có thể thay đổi phạm vi trong macro trên phù hợp với yêu cầu của chúng ta Kết luận: * Với macro trên, chúng ta có thể sao chép các ô từ hàng Activecell sang một trang tính mới bằng mã VBA.
Nếu bạn thích blog của chúng tôi, hãy chia sẻ nó với bạn bè của bạn trên Facebook. Và bạn cũng có thể theo dõi chúng tôi trên Twitter 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, bổ sung hoặc đổi mới 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 tại [email protected]