1 (изменено: misha_057, 2015-04-14 10:46:03)

Тема: AHK: Как сделать переключение между окнами в Excel? (Решено)

Как сделать переключение между окнами Excel?
Не могу понять, почему не работает это:

!1::
{
msgbox Перейдем в окно 2.

WinWait, Microsoft Excel - 2.xlsx, 
IfWinNotActive, Microsoft Excel - 2.xlsx, , WinActivate, Microsoft Excel - 2.xlsx, 
WinWaitActive, Microsoft Excel - 2.xlsx, 

msgbox Есть 2!

Sleep, 1000

msgbox Перейдем обратно в 1.
WinWait, Microsoft Excel - 1.xlsx, 
IfWinNotActive, Microsoft Excel - 1.xlsx, , WinActivate, Microsoft Excel - 1.xlsx, 
WinWaitActive, Microsoft Excel - 1.xlsx, 

msgbox Есть 1!
}
return

2 (изменено: Alectric, 2015-04-10 15:51:12)

Re: AHK: Как сделать переключение между окнами в Excel? (Решено)

"WinWait" там ни к чему.
"WinWaitActive" замени на "WinActivate".

Win 10 x64
AHK
                       Справка AHK v1 тебе в помощь.

3

Re: AHK: Как сделать переключение между окнами в Excel? (Решено)

"WinWait" убрал,  "WinActivate" там и так есть.
Через WinActivate, ahk_class XLMAIN, активируется последнее активное окно Екселя, а вот переключаться по названию файлов - никак.

4 (изменено: Alectric, 2015-04-10 16:54:53)

Re: AHK: Как сделать переключение между окнами в Excel? (Решено)

Тогда так:

Xl:=ComObjActive("Excel.Application")

!1::
winactivate,ahk_class XLMAIN
xl.Workbooks("1.xlsx").Activate
return

!2::
winactivate,ahk_class XLMAIN
xl.Workbooks("2.xlsx").Activate
return

Источник.
Другой.

Win 10 x64
AHK
                       Справка AHK v1 тебе в помощь.

5

Re: AHK: Как сделать переключение между окнами в Excel? (Решено)

Спасибо, работает.