Chọn một ô cụ thể trong Macro (Microsoft Excel)
Khi sử dụng macro để truy cập hoặc thay đổi dữ liệu trong trang tính, bạn thường sẽ dựa vào phạm vi. Làm như vậy loại bỏ nhu cầu thực sự chọn các ô trong macro. Mặc dù vậy, bạn có thể muốn (vì bất kỳ lý do gì) thực sự chọn các ô bạn muốn làm việc. Nếu ô bạn muốn chọn nằm trong một sổ làm việc khác, tác vụ sẽ khó hơn một chút. Ví dụ: hãy xem xét hai dòng mã sau:
Sub CellSelect1() Workbooks("pwd.xls").Sheets("Sheet3").Select ActiveSheet.Range("A18").Select End Sub
Bạn có thể nghĩ rằng macro này sẽ chọn Sheet3! A18 trong sổ làm việc pwd.xls. Nó có, với một số lưu ý. Nếu bạn có nhiều sổ làm việc đang mở, macro này dẫn đến lỗi, nếu pwd.xls không phải là sổ làm việc hiện đang hoạt động. Điều này xảy ra ngay cả khi pwd.xls đã được mở, nhưng đơn giản là chưa được chọn.
Hành vi tương tự vẫn tồn tại ngay cả khi bạn rút gọn mã lựa chọn xuống một dòng duy nhất:
Sub CellSelect2() Workbooks("pwd.xls").Sheets("Sheet3").Range("A18").Select End Sub
Bạn vẫn gặp lỗi, ngoại trừ khi pwd.xls là sổ làm việc đang hoạt động. Giải pháp là thay đổi hoàn toàn cách bạn thực hiện bước nhảy. Thay vì sử dụng phương thức Chọn, hãy sử dụng phương thức Goto và chỉ định địa chỉ đích cho phương thức:
Sub CellSelect3() Application.Goto _ Reference:=Workbooks("pwd.xls").Sheets("Sheet3").[A18] End Sub
Mã này sẽ chỉ hoạt động nếu pwd.xls đã được mở, nhưng nó không cần phải là sổ làm việc hiện đang hoạt động. Nếu bạn muốn sổ làm việc đích được cuộn để ô được chỉ định nằm ở góc trên bên trái của những gì bạn đang xem, thì bạn có thể chỉ định thuộc tính Scroll là True, như được hiển thị ở đây:
Sub CellSelect4() Application.Goto _ Reference:=Workbooks("pwd.xls").Sheets("Sheet3").[A18] _ Scroll:=True 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 (11947) áp dụng cho Microsoft Excel 2007, 2010, 2013 và 2016.
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: