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

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

  1. Откройте диалоговое окно «Параметры Excel». (В Excel 2007 нажмите кнопку «Office», а затем выберите «Параметры Excel. В Excel 2010 или более поздней версии откройте вкладку« Файл »на ленте и нажмите кнопку« Параметры ».)

  2. В левой части диалогового окна нажмите «Дополнительно». (См. Рис. 1.)

  3. В разделе «Параметры редактирования» убедитесь, что установлен флажок «Переместить выделение после нажатия клавиши ВВОД». (По умолчанию это должно быть отмечено.)

  4. Используя раскрывающийся список «Направление», измените направление по желанию.

  5. Щелкните ОК.

Это изменяет направление движения для всех книг, которые вы открываете в Excel. Если вы хотите, чтобы движение изменялось для одного рабочего листа, вы можете добиться этого с помощью нескольких обработчиков событий. Два из них прикреплены к рабочему листу, с которым вы хотите работать по-другому; просто щелкните правой кнопкой мыши вкладку рабочего листа и выберите «Код» в появившемся контекстном меню. Затем вы можете вставить следующее в окно кода:

Private Sub Worksheet_Activate()

Application.MoveAfterReturnDirection = xlToRight End Sub
Private Sub Worksheet_Deactivate()

Application.MoveAfterReturnDirection = xlDown End Sub

Эти обработчики событий запускаются, соответственно, при активации рабочего листа и при его деактивации путем выбора другого рабочего листа. Обратите внимание, что после активации для направления устанавливается значение xlToRight, что означает, что движение будет происходить вправо. Когда рабочий лист деактивирован, устанавливается направление xlDown, которое считается направлением по умолчанию.

Вам также понадобится третий обработчик событий; его нужно добавить в модуль ThisWorkbook:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Application.MoveAfterReturnDirection = xlDown End Sub

Это необходимо, потому что если вы закроете Excel при «перемещении вправо»

рабочий лист активен, то направление движения остается равным xlToRight. Это означает, что при следующем запуске Excel это станет направлением по умолчанию. Включая обработчик события BeforeClose, вы гарантируете, что значение по умолчанию установлено должным образом.

Есть только одна небольшая потенциальная проблема с этим подходом: когда вы впервые открываете книгу, событие Activate не запускается для любого рабочего листа, отображаемого первым. Это означает, что если ваш «ход вправо»

рабочий лист отображается для книги, по умолчанию перемещение не будет изменено на xlToRight; по-прежнему будет установлено значение по умолчанию, предположительно xlDown. Чтобы принудительно запустить обработчик событий, вам нужно отобразить другой лист в книге, а затем вернуться к исходному листу. Если вы не хотите делать это вручную, вы можете добавить четвертый обработчик событий, этот также в модуле ThisWorkbook:

Private Sub Workbook_Open()

Sheets("Sheet2").Select     Sheets("Sheet1").Select End Sub

Этот макрос выбирает лист с именем Sheet2, а затем сразу же выбирает лист с именем Sheet1. Вы должны, конечно, изменить имена рабочих листов, чтобы они отражали те, которые подходят для вашей книги — просто убедитесь, что последний выбранный рабочий лист является «перемещением вправо»

рабочий лист.

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

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

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

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

Этот совет (13640) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365.