Khi bạn đang chỉnh sửa trang tính, bạn có thể nhận thấy rằng một số công việc của bạn được thực hiện dựa trên công việc bạn đã làm trước đó. Ví dụ: bạn có thể có một hàng dữ liệu mà bạn đã nhập trong một phiên Excel trước. Trong phiên này, bạn cần sao chép hàng dữ liệu đó và sử dụng nó làm cơ sở cho dữ liệu mới của mình, nhưng với một vài thay đổi.

Trong tình huống như vậy, sẽ rất hay nếu có một cách nhanh chóng để nhập một hàng trống sau hàng hiện tại và sao chép dữ liệu trong hàng hiện tại sang hàng trống mới. Không có lệnh nội tại nào trong Excel để thực hiện việc này, nhưng một macro có thể thực hiện điều đó rất thủ công. Hãy xem xét ví dụ sau:

Sub InsertCopyRow1()

ActiveCell.EntireRow.Select     Selection.Copy     Selection.Insert Shift:=xlDown End Sub

Để sử dụng macro, tất cả những gì bạn cần làm là chọn một ô trong bất kỳ hàng nào. Khi macro được chạy, một bản sao của hàng hiện tại sẽ được chèn ngay bên dưới hàng bạn đang ở.

Vấn đề duy nhất với giải pháp này là nó khiến giao diện Excel hơi “lộn xộn” (vì thiếu từ hay hơn). Khi hoàn thành, một hàng hoàn chỉnh vẫn được chọn và hàng mới có “kiến diễu hành”

di chuyển xung quanh nó.

Vấn đề này có thể được khắc phục bằng cách bao gồm các lệnh để thu gọn vùng chọn và di chuyển nó đến vị trí mong muốn. Một cách khác là chỉ cần sử dụng một macro khác dựa trên các lệnh VBA khác nhau. Macro sau cũng sẽ chèn và sao chép một hàng, nhưng nó để lại ô bạn đã chọn đang hoạt động:

Sub InsertCopyRow2()

ActiveCell.Offset(1, 0).EntireRow.Insert     ActiveCell.EntireRow.Copy ActiveCell.Offset(1, 0).EntireRow End Sub

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (2042) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Excel (Excel 2007 trở lên) tại đây: