Xóa, Chèn Dòng Tự động Giữa Hai Sheet

Giả sử có bài toán như sau: Trong Sheet 1 có một vùng dữ liệu, Sheet 2 cũng có một vùng dữ liệu tương ứng. Yêu cầu bài toán là khi xóa một dòng bất kỳ ở Sheet 1 thì Sheet2 tự động xóa dòng tại vị trí đó. Tương tự với việc chèn dòng, khi Sheet 1 chèn một dòng bất kỳ thì Sheet 2 cũng sẽ chèn một dòng tương ứng với vị trí dòng dòng ở Sheet 1.

Giả sử có một vùng dữ liệu ở sheet 1 như sau:

Tương tự với Sheet2 ta cũng có vùng dữ liệu tương ứng.

Để giải quyết bài toán trên, các bạn làm theo các bước sau:

Bước 1: Copy code dưới đây vào module (vào môi trường lập trình (ALT+F11) chọn Insert-> Module để tạo mới Module và pate code dưới đây vào trong Module)

Option Explicit Sub XoaChenDong() Dim lRow As Long Dim IQuestion As String IQuestion = MsgBox("Ban muon INSERT hay DELETE dong, Yes/No (Insert/delete).", vbYesNoCancel, "Thông báo") Sheets("Sheet1").Select 'Luu vi tri dong can xoa vao bien lRow lRow = ActiveCell.Row Rows(lRow & ":" & lRow).Select IQuestion = UCase(IQuestion) If IQuestion = vbYes Then Selection.insert Sheets("Sheet2").Select Rows(lRow & ":" & lRow).Select Selection.insert GoTo exitsub ElseIf IQuestion = vbNo Then Selection.delete Sheets("Sheet2").Select Rows(lRow & ":" & lRow).Select Selection.delete GoTo exitsub Else GoTo exitsub End If exitsub: Sheets("Sheet1").Select End Sub

Bước 2: Các bạn vào mỗi trường bảng tính, Insert một nút bấm để gán macro. Vào menu Developer -> Insert -> Button.

Sau đó các bạn đặt chuột vào một vị trí, kéo mộ vùng vừa đủ cho nút bấm, rồi gán Macro vừa tạo (XoaChenDong) vào nút bấm.

Bước 3: Sau khi hoàn thành việc gán Macro, các bạn đặt chuột vào 1 ví trí thuộc dòng bất kỳ cần chèn thêm dòng ở (mình đặt vào ô A6) tại dòng có mã hàng là HH003. Sau đó các bạn click vào nút Run -> khi đó sẽ hiển thị thông báo: "Bạn muon INSERT/DELETE dòng (I/D)". Các bạn gõ "I" (không phân biệt chữ viết hoa hay viết thường), sau đó chọn vào OK để nhận kết quả.

Sau khi click vào OK, trước dòng thứ 6 chứa mã hàng mã hàng HH003 sẽ chèn thêm một dòng.

Tương tự trước dòng thứ 6 chứa mã hàng HH004 ở sheet 2 cũng được chèn thêm một dòng ( do bảng dữ liệu ở sheet1 bắt đầu từ dòng 4, ở sheet2 bắt đầu từ dòng 3 nên khi chèn/xóa sẽ bị lệch 1 dòng).

Bước 4: Tương tự với bước 3, để xóa một dòng bất kỳ, ta cũng đặt chuột vào dòng đó, sao đó click chuột trái vào nút Run, để xóa dòng, tại hộp thoại thông báo, các bạn gõ chữ "D" sau đó click vào OK để nhận kết quả.

Sau khi click vào OK, tại sheet 1 sẽ xóa đi dòng thứ 8, dòng chứa mã hàng HH004.

Tương tự ở Sheet2, dòng sẽ bị xóa đi là dòng thứ 8, dòng chứa mã hàng HH004.

Các bạn vào đây download file ví dụ: Download

Từ khóa » Xoa Dong Trong Vba