David tự hỏi liệu có cách nào để các tham chiếu ô trong macro thay đổi khi thêm hoặc xóa các hàng, tương tự như cách một công thức phản ứng với những thay đổi đó không?

Khi bạn tham chiếu một ô trong macro, chẳng hạn như sử dụng Phạm vi (“B6”), thì VBA coi tham chiếu đó là tuyệt đối, nghĩa là nó không thay đổi.

Ngay cả khi bạn thêm hoặc xóa các ô ảnh hưởng đến vị trí của thông tin trong B6 hiện đang được đặt, thì tham chiếu macro sẽ vẫn giữ nguyên.

Cách giải quyết vấn đề này là không sử dụng tham chiếu trực tiếp đến các ô trong macro của bạn. Thay vào đó, hãy dựa vào các phạm vi được đặt tên. Trong Excel, xác định tên cho ô B6 (chẳng hạn như “MyData”), sau đó sử dụng tên đó trong tham chiếu, như trong Range (“MyData”). Cách tiếp cận này hoạt động vì VBA tra cứu tên để xác định ô nào đang được tham chiếu và Excel đảm bảo rằng các tham chiếu phạm vi được đặt tên vẫn được cập nhật khi bạn thêm hoặc xóa ô.

_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 (12919) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện menu cũ hơn của Excel tại đây: