Leah muốn có một nút nổi có gán macro. Vì vậy, khi cô ấy di chuyển sang trái, phải, lên hoặc xuống, nút sẽ ở gần ô mà cô ấy đang làm việc. Leah tự hỏi liệu có cách nào để thêm một nút như vậy trong Excel hay không.

Không có cách nào để làm điều này mà không sử dụng macro để kiểm soát vị trí của nút. (Đây không phải là vấn đề lớn vì bạn đã sử dụng ít nhất một macro trong sổ làm việc — macro mà nút nổi kích hoạt.)

Trước khi đi vào chi tiết cụ thể về cách thực hiện việc này, bạn sẽ cần xem xét xem bạn có thực sự muốn sử dụng phương pháp này hay không. Ví dụ: bạn có thể gán macro của mình cho một phím tắt hoặc cho một nút trên Thanh công cụ Truy nhập Nhanh. Một trong hai cách tiếp cận sẽ loại bỏ nhu cầu liên tục định vị lại nút nổi của bạn.

Nếu bạn chắc chắn muốn đi theo tuyến nút, hãy tiếp tục và tạo nút trên màn hình và liên kết nó với macro của bạn. Sau đó, chỉ cần tạo một trình xử lý sự kiện định vị lại nút mỗi khi bạn thay đổi ô đã chọn. Ví dụ: giả sử rằng tên nút của bạn là “Nút 1”. Trong trường hợp đó, bạn có thể sử dụng macro sau:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

With ActiveSheet.Shapes("Button 1")

.Top = Target.Offset(1).Top         .Left = Target.Offset(, 1).Left     End With End Sub

Hãy nhớ rằng đây là một trình xử lý sự kiện, vì vậy nó cần phải được đặt trong cửa sổ mã cho trang tính mà nó áp dụng. Kết quả là nút được di chuyển để luôn ở gần góc dưới cùng bên phải của ô đã chọn.

Cũng cần lưu ý rằng có hai cách bạn có thể tạo nút macro — dưới dạng điều khiển Active X hoặc dưới dạng điều khiển X kế thừa, không Active. Cách tiếp cận trên hoạt động hiệu quả nếu bạn đang sử dụng loại nút cũ. Tuy nhiên, nếu bạn đang sử dụng điều khiển Active X, thì bạn sẽ muốn thay đổi macro một chút:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

With ActiveSheet.OLEObjects("CommandButton1")

.Top = Target.Offset(1).Top         .Left = Target.Offset(, 1).Left     End With End Sub

Lưu ý rằng thay đổi duy nhất là trong đối tượng được tham chiếu. Với trình xử lý sự kiện thích hợp tại chỗ, bất cứ khi nào bạn thay đổi ô đã chọn trên màn hình, nút sẽ đổi vị trí ở ngay phía dưới cùng bên phải của ô đã chọn. Vì vậy, nó không phải là “trôi nổi”

nút luôn di chuột ở cùng một vị trí. Điều này sẽ ổn trong tình huống của Leah, vì cô ấy muốn nút ở gần ô mà cô ấy đang làm việc (ô đã chọn), chứ không phải ô mà cô ấy đang xem (chẳng hạn như khi cô ấy cuộn bằng cách sử dụng các thanh cuộ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 (13544) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365.