При вводе информации в одну строку начиная от А1 до АL1, 30-35 ячеек, по окончании ввода строки мышкой устанавливаю курсор в столбец А2 и выполняю процедуру до AL2 При переводе стрелкой вправо встречаются ячейки с информацией. Вопрос такой: можно-ли макросом на листе заставить активировать пустую ячейку слева. При переводе курсора стрелкой вправо находим первую пустую ячейку по строке, после окончания ввода Enter спускаемся вниз и.... активируется свободная ячейка (А....)
При вводе информации в одну строку начиная от А1 до АL1, 30-35 ячеек, по окончании ввода строки мышкой устанавливаю курсор в столбец А2 и выполняю процедуру до AL2 При переводе стрелкой вправо встречаются ячейки с информацией. Вопрос такой: можно-ли макросом на листе заставить активировать пустую ячейку слева. При переводе курсора стрелкой вправо находим первую пустую ячейку по строке, после окончания ввода Enter спускаемся вниз и.... активируется свободная ячейка (А....)gling
кнопкой Home - окажетесь в A1 и Стрелка Вниз - в A2
можно, в принципе, объединить два этих шага в один и назначить их той же клавише Home: [vba]
Code
Sub turnNewHomeOn() 'запустить один раз перед массовым использованием Application.OnKey "{HOME}", "newHomeReaction" End Sub
Sub newHomeReaction() Cells(ActiveCell.Row, 1).Offset(1).Select End Sub
Sub turnNewHomeOff() 'запустить один раз по окончании массового использования Application.OnKey "{HOME}" End Sub
[/vba] Запускаете первый макрос, который переопределяет действие Home по умолчанию, т.е. заменяет новым действием. Активно пользуетесь новым Home при вводе данных. По окончании работы восстанавливаете обычное поведение Home, запустив третий макрос.
Quote (Gustav)
кнопкой Home - окажетесь в A1 и Стрелка Вниз - в A2
можно, в принципе, объединить два этих шага в один и назначить их той же клавише Home: [vba]
Code
Sub turnNewHomeOn() 'запустить один раз перед массовым использованием Application.OnKey "{HOME}", "newHomeReaction" End Sub
Sub newHomeReaction() Cells(ActiveCell.Row, 1).Offset(1).Select End Sub
Sub turnNewHomeOff() 'запустить один раз по окончании массового использования Application.OnKey "{HOME}" End Sub
[/vba] Запускаете первый макрос, который переопределяет действие Home по умолчанию, т.е. заменяет новым действием. Активно пользуетесь новым Home при вводе данных. По окончании работы восстанавливаете обычное поведение Home, запустив третий макрос.Gustav
light26, посмотрите в файле, примечания в ячейках. то что предложено после вас не подходит. двигается лист а не ячейка. ход конем похож, но у меня движений больше и они разные. поэтому пытаюсь привязаться к пустой ячейке, может я не прав.
light26, посмотрите в файле, примечания в ячейках. то что предложено после вас не подходит. двигается лист а не ячейка. ход конем похож, но у меня движений больше и они разные. поэтому пытаюсь привязаться к пустой ячейке, может я не прав.gling
Если я правильно всё понял после знакомства с файлом, то вот переопределение клавиши Стрелка Вправо (по аналогии с Home) : [vba]
Code
Sub turnNewRightOn() 'запустить один раз ПЕРЕД массовым использованием Application.OnKey "{RIGHT}", "newRightReaction" End Sub
Sub newRightReaction() 'движение вправо по пустым ячейкам Dim nextCell As Range
Set nextCell = ActiveCell.Next Do While Not IsEmpty(nextCell) Set nextCell = nextCell.Next Loop nextCell.Select End Sub
Sub turnNewRightOff() ''запустить один раз ПОСЛЕ массового использования Application.OnKey "{RIGHT}" End Sub
[/vba] Что касается возврата в колонку A на следующую строку, то я рекомендовал бы всё-таки переопределенный Home (см. ранее макросы) - она нормально работает, Вы ее, наверное, и не пробовали, расстроившись от того, что обычный Home в условиях фиксации столбцов не возвращается в колонку A
P.S. Если Вам всё же больше нравится Enter, то можете в макросах по Home заменить {HOME} на {ENTER}, если будете пользоваться маленьким Enter'ом на числовой клавиатурой, ИЛИ {HOME} на ~ , если будете пользоваться обычной клавишей Enter (большой).
Если я правильно всё понял после знакомства с файлом, то вот переопределение клавиши Стрелка Вправо (по аналогии с Home) : [vba]
Code
Sub turnNewRightOn() 'запустить один раз ПЕРЕД массовым использованием Application.OnKey "{RIGHT}", "newRightReaction" End Sub
Sub newRightReaction() 'движение вправо по пустым ячейкам Dim nextCell As Range
Set nextCell = ActiveCell.Next Do While Not IsEmpty(nextCell) Set nextCell = nextCell.Next Loop nextCell.Select End Sub
Sub turnNewRightOff() ''запустить один раз ПОСЛЕ массового использования Application.OnKey "{RIGHT}" End Sub
[/vba] Что касается возврата в колонку A на следующую строку, то я рекомендовал бы всё-таки переопределенный Home (см. ранее макросы) - она нормально работает, Вы ее, наверное, и не пробовали, расстроившись от того, что обычный Home в условиях фиксации столбцов не возвращается в колонку A
P.S. Если Вам всё же больше нравится Enter, то можете в макросах по Home заменить {HOME} на {ENTER}, если будете пользоваться маленьким Enter'ом на числовой клавиатурой, ИЛИ {HOME} на ~ , если будете пользоваться обычной клавишей Enter (большой).Gustav