Вопрос или проблема
Могу ли я настроить Excel так, чтобы, когда окно Excel не активно, и я нажимаю на ячейку, Excel перемещался к этой ячейке?
Щелчок по ячейке активирует окно, но Excel не перемещается к ячейке. Мне нужно щелкнуть второй раз по ячейке, чтобы Excel переместился к ячейке.
Это кажется особым случаем более общего поведения Excel. Excel игнорирует щелчки мыши в неактивных окнах. Например, щелчок по кнопке на ленте ничего не делает (кроме активации окна).
Другие приложения Windows имеют противоположное поведение. Они не игнорируют щелчки по неактивным окнам. Щелчок активирует окно, но также выполняет то, что обычно делает щелчок. Щелчок в неактивном окне Блокнота в основном текстовом буфере активирует окно, но также перемещает курсор к точке щелчка, щелчок по кнопке меню активирует меню и так далее.
Я просмотрел доступные варианты в меню Файл … Параметры и попробовал несколько запросов в Google, чтобы найти ответ. Я не нашел никакой актуальной информации.
Вероятно, вы не можете изменить Excel, но можете изменить поведение окна, чтобы фокус всегда перемещался на окно, над которым находится мышь (панель управления, ‘упрощение использования’). Таким образом, когда вы перемещаете мышь над (ранее неактивным) окном Excel, оно становится активным само по себе, и ваш щелчок будет распознан и выполнен.
Обратите внимание, что такое изменение влияет на все ваши окна во всех программах. Некоторые люди находят это очень полезным, но некоторые ненавидят это.
Вот скрипт AutoHotKey, который я написал, чтобы решить эту проблему:
#Requires AutoHotkey v2.0
#SingleInstance
excelExt := ".xls" ; строка, которая появляется в заголовке всех приложений, к которым вы хотите это применить
WaitExcel(){ ; стартовая функция
if WinWaitActive(excelExt){ ; ждать, пока excel не будет выбран
Click 2 ; вызвать щелчок дважды
}
if WinWaitNotActive(excelExt){ ; ждать, пока excel не будет выбран (чтобы повторно применить ожидание)
WaitExcel ; вызвать функцию снова для обновления прослушивателя
}
}
WaitExcel ; начать процесс прослушивания
Вот ссылка для скачивания AutoHotKey: https://autohotkey.com/
Спасибо @Engineer Toast за предложение.
Ответ или решение
Как сделать так, чтобы клики на неактивном окне Excel перемещали клик в нужную ячейку
Если вы столкнулись с задачей, когда при клике по ячейке в неактивном окне Excel программа не перемещается к выбранной ячейке (а требует второго клика для активации и перемещения), это объясняется особенностями поведения Excel и Windows в целом. Однако есть способы решения этой проблемы, которые мы подробно рассмотрим.
Проблема с поведением приложения
Стандартная функциональность Excel подразумевает, что клики по ячейкам в неактивном окне просто активируют это окно. При этом не происходит автоматического перехода к выбранной ячейке. Это поведение не уникально для Excel: многие приложения Windows, такие как Notepad, ведут себя иначе, позволяя пользователю сразу перемещаться к выбранной позиции при активации окна с помощью клика.
Варианты решения
-
Изменение настроек Windows:
В Windows есть возможность управлять поведением окон, используя настройки доступности. Вы можете активировать функцию, позволяющую окнам автоматически переходить в активный режим при наведении курсора. Для этого выполните следующие действия:- Откройте "Параметры" и перейдите в раздел "Упрощенный доступ".
- Найдите опцию, связанную с фокусом на окнах, и активируйте её.
Учтите, что это изменит поведение всех окон на вашем компьютере, и некоторым пользователям это может не понравиться.
-
Использование AutoHotkey:
Если вы не хотите изменять поведение системы для всех приложений, вы можете использовать AutoHotkey для создания пользовательского скрипта. Вот пример скрипта, который позволил бы вам решать данную проблему:#Requires AutoHotkey v2.0 #SingleInstance excelExt := ".xls" ; расширение для поиска окна Excel WaitExcel() { ; старт функции if WinWaitActive(excelExt) { ; ждем активации окна Excel Click 2 ; делаем двойной клик } if WinWaitNotActive(excelExt) { ; ждем, пока окно снова не станет неактивным WaitExcel() ; повторно вызываем функцию для обновления слушателя } } WaitExcel() ; запускаем процесс прослушивания
Этот скрипт будет отслеживать активность окна Excel и автоматически выполнять двойной клик при активации. Чтобы использовать его, вам потребуется установить AutoHotkey, скачать его можно по ссылке.
Заключение
Проблема, с которой вы столкнулись, является распространенной и объясняется особенностями работы с окнами в Windows и приложениях. Несмотря на отсутствие встроенной настройки в Excel, предложенные решения, такие как изменение системных настроек или использование скриптов AutoHotkey, могут значительно улучшить ваш рабочий процесс.
Если у вас остались вопросы по настройке или использованию предложенных решений, не стесняйтесь обращаться за дополнительной помощью.