Я использую этот скрипт для горизонтальной прокрутки с помощью shift + mousewheel для Excel:

#IfWinActive, ahk_class XLMAIN
+WheelDown::ComObjActive("Excel.Application").ActiveWindow.SmallScroll(0,0,3,0)
+WheelUp::ComObjActive("Excel.Application").ActiveWindow.SmallScroll(0,0,0,3)

Это прекрасно работает для таблиц, но когда я удерживаю Shift и прокручиваю графические листы, я получаю эту ошибку:

Error 0x800A03EC -
Source: Microsoft Excel
Description: Unable to get the SmallScroll proprety of the Window class
HelpFile: xlmain11.chm
HelpContext: 0

Specifically: SmallScroll

        Line#
        002: Return
--->    002:
 ComObjActive("Excel.Application").ActiveWindow.SmallScroll(0,0,3,0)
        002: Return
        003:
 ComObjActive("Excel.Application").ActiveWindow.SmallScroll(0,0,3,0)
        003: Return
        004: Exit
        004: Exit
        004: Exit

Есть ли способ исправить это, или я буду вечно перетаскивать полосу прокрутки, потому что Excel отстой?

Я использую Excel 2016 на Windows 10.

2 ответа2

2

Я знаю, что это старый, но вот ответ для тех, кто ищет горизонтальную прокрутку в Excel.

Скрипт AutoHotKey ниже работает. Я адаптировал скрипт BevanFindlay, найденный здесь, для работы с моими потребностями. Я обнаружил, что его сценарий работает в Excel, но больше нигде.

Я провел некоторое тестирование в Excel 2010, и оно все еще прекрасно прокручивается на листах с диаграммами. Если у вас есть данные на выбранной диаграмме, она на самом деле будет прокручивать данные, что интересно, если не получится. Однако он будет прокручиваться по горизонтали, как обычно, если у вас нет данных на выбранной диаграмме. Надеюсь это поможет!

#Singleinstance Force

;Horizontal scrolling in Excel only
#IfWinActive ahk_class XLMAIN

    +WheelUp:: 
        SetScrollLockState, On 
        SendInput {Left} 
        SetScrollLockState, Off 
    Return 

    +WheelDown:: 
        SetScrollLockState, On 
        SendInput {Right} 
        SetScrollLockState, Off 
    Return 

; Horizontal scrolling in everything except Excel. 
#IfWinNotActive ahk_class XLMAIN 

    +WheelDown::WheelRight
    +WheelUp::WheelLeft
-1

Я обнаружил, что приведенный выше скрипт неуклюж и медленен: в основном отправляет заданное количество команд {Left} или {Right}. Ни одно из решений AHK не кажется надежным.

Эта программа на GitHub работает исключительно хорошо для горизонтальной прокрутки как в Excel, так и в Word 2016 https://github.com/T800G/OfficeScroll Просто нажмите Shift и вращайте колесо ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .