Chọn một ô trong hàng hiện tại (Microsoft Excel)
Nếu bạn đang phát triển macro Excel, bạn có thể tự hỏi làm thế nào bạn có thể chọn một ô liên quan đến ô mà bạn đang ở. Ví dụ: nếu bạn đang sử dụng Excel và bạn nhấn phím Trang chủ, ô ở phía bên trái của hàng hiện tại sẽ được chọn. Rất tiếc, việc sử dụng trình ghi macro để ghi lại điều này không giúp ích được gì trong trường hợp này, vì nó ghi lại đích của hành động, thay vì hành động thực tế của bạn. Ví dụ: nếu bạn nhấn Trang chủ và bạn đang ở hàng thứ tư trong một trang tính, Excel sẽ không ghi lại hành động Trang chủ mà thay vào đó ghi lại đích, như sau:
Range("A4").Select
Điều này thật tuyệt nếu bạn luôn muốn chuyển đến ô A4, nhưng thật tệ nếu bạn muốn chuyển đến ô đầu tiên của bất kỳ hàng nào bạn đang ở trên.
Như với nhiều nhiệm vụ trong VBA, có một số cách bạn có thể tiếp cận giải pháp cho tình huống khó xử này. Phương thức đầu tiên thực sự là một biến thể trên những gì mà trình ghi macro trả về, như được hiển thị ở trên. Tất cả những gì bạn cần làm là thay đổi ký hiệu hàng để nó đại diện cho hàng hiện tại, như sau:
Range("A" & (ActiveCell.Row)).Select
VBA tìm ra hàng hiện tại là gì, đánh nó cùng với chữ “A”
bộ chỉ định và đưa ra một tham chiếu ô hoạt động với phương pháp Phạm vi.
Một kỹ thuật khác bạn có thể sử dụng là đặt thuộc tính Cells hoạt động, như sau:
Cells(Application.ActiveCell.Row, 1).Select
Tất nhiên, cách tiếp cận này có thể được sửa đổi để bạn thực sự chọn bất kỳ ô nhất định nào trong hàng hiện tại. Tất cả những gì bạn cần làm là thay đổi ký hiệu cột (1, trong ví dụ trên) thành một số đại diện cho cột mong muốn.
Một cách tiếp cận khác (tạo ra cùng một kết quả) là sử dụng đối tượng Range kết hợp với thuộc tính Cells, như được hiển thị ở đây:
Range(Cells(Selection.Row, 1).Address).Select
Selection.Row cho biết số hàng của lựa chọn hiện tại. Thuộc tính Address của phương thức Cells trả về địa chỉ của một ô cụ thể ở định dạng A $ 1 $. Địa chỉ này sau đó được sử dụng làm tham số cho đối tượng Phạm vi và ô thực tế được chọn bằng phương pháp Chọn.
_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 (2267) á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: