Kiểm soát thứ tự nhập trên các ô không được bảo vệ (Microsoft Excel)
Rob có một số trang tính được sử dụng để chấm điểm các bài đánh giá. Trang tính đầu tiên có các ô cho tên, ngày, v.v., sau đó là một số cột để nhập câu trả lời trắc nghiệm. Trang tính được bảo vệ, vì vậy chỉ có thể thay đổi các ô đầu vào. Khi người dùng hoàn thành ô cuối cùng trong một cột, tiêu điểm sẽ chuyển đến ô không được bảo vệ tiếp theo, có thể là ô đầu tiên trong cột tiếp theo hoặc có thể là ô “ngày”. Rob tự hỏi làm cách nào anh ta có thể kiểm soát tiêu điểm để khi giá trị được nhập vào ô cuối cùng (dưới cùng) trong một cột, sau đó nó sẽ chuyển đến ô mà anh ta chỉ định.
Không có cách cài sẵn nào để thực hiện việc này trong Excel, vì chương trình tự xác định thứ tự chọn ô nào được chọn tiếp theo. Bạn có thể sửa đổi ô nào được chọn tiếp theo khi bạn nhấn Enter trong một trang tính, nhưng bạn không thể sửa đổi những gì sẽ xảy ra khi bạn nhấn Tab trong một trang tính được bảo vệ.
Theo mặc định, các ô được chọn từ trái sang phải rồi từ trên xuống dưới trong trang tính.
Nếu bạn muốn sửa đổi những gì xảy ra khi phím Tab được nhấn, thì bạn sẽ cần sử dụng macro để kiểm soát thứ tự lựa chọn.
Macro sau đây là một ví dụ; nó di chuyển đến ô D5 khi rời ô C10 và đến E5 khi rời ô D10:
Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Target.Address = "$C$10" Then Range("D5").Select If Target.Address = "$D$10" Then Range("E5").Select Application.EnableEvents = True End Sub
Vấn đề khi sử dụng giải pháp VBA như thế này là nó có thể làm cho bảng tính của bạn — đặc biệt nếu nó là một trang lớn — chậm hơn một chút. Về bản chất, macro cũng có nghĩa là tính năng Hoàn tác bị vô hiệu hóa.
Nếu nhu cầu đặt hàng tab của bạn phức tạp hơn, thì bạn có thể quan tâm đến mã được thảo luận tại trang web này:
http://www.ozgrid.com/forum/showthread.php?t=82272
Như bạn có thể nói, đôi khi mã có thể khá phức tạp. Tất nhiên, cách tiếp cận như vậy, vì nó quy định tất cả chuyển động từ ô này sang ô khác, nên việc thực hiện các thay đổi đối với thiết kế của trang tính trở nên khó khăn hơ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 (10313) á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: