У Роба есть несколько рабочих листов, которые используются для выставления оценок. Первый рабочий лист содержит ячейки для имени, даты и т. Д., Затем несколько столбцов для ввода ответов с множественным выбором. Лист защищен, поэтому изменять можно только ячейки ввода. Когда пользователь завершает последнюю ячейку в столбце, фокус переместится на следующую незащищенную ячейку, которая может быть первой ячейкой в ​​следующем столбце или ячейкой «даты». Роб задается вопросом, как он может управлять фокусом, чтобы при вводе значения в последнюю (нижнюю) ячейку столбца оно переместилось в указанную им ячейку.

В Excel нет встроенного способа сделать это, поскольку программа сама определяет порядок выбора следующей ячейки. Вы можете изменить, какая ячейка будет выбрана следующей, когда вы нажмете Enter на листе, но вы не можете изменить, что происходит, когда вы нажимаете Tab на защищенном листе. По умолчанию ячейки выбираются слева направо, а затем сверху вниз на листе.

Если вы хотите изменить то, что происходит при нажатии клавиши Tab, вам нужно прибегнуть к использованию макроса для управления порядком выбора.

Следующий макрос является примером; он перемещается в ячейку D5 после ввода чего-либо в ячейку C10 и в E5 после ввода чего-либо в ячейку D10:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$C$10" Then Range("D5").Select     If Target.Address = "$D$10" Then Range("E5").Select End Sub

Проблема с использованием такого решения VBA заключается в том, что оно может сделать вашу электронную таблицу — особенно если она большая — немного более медленной. По своей природе макросы также означают, что функция отмены отключена.

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (10314) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:

link: / excel-Controlling_Entry_Order_on_Unprotected_Cells [Контроль входа в незащищенные ячейки].