Что нового

Как открыть файл xls и спустя 3 секунды после открытия - перейти на нужный лист

Grell

Новичок
Сообщения
127
Репутация
0
Добрый вечер. Помогите решить непростой вопрос.

Как при помощи autoit - запустить файл "C:\файлы экселя\1.xls" программой "C:\программа эксель\EXCEL.EXE" - с таким расчетом, чтобы он после открытия этого файла - вждал бы 3 секунды и затем сделал активным Лист3 ?

Вопрос непростой - поскольку разные файлы эксель - открываются по разному. Чем тяжелее файл - тем дольше он открывается.
Потом в книге стоит макрос - при открытии - всегда перемещает на лист "Главный".
То есть именно поэтому - нужно выжидать три секунды после открытия - чтобы сработал этот макрос vba, чтобы уже потом выделить нужный лист.

Как это реализовать.
 

Вложения

  • 10,3 КБ Просмотры: 2

hedji

Продвинутый
Сообщения
408
Репутация
90
Проверял на 10Мб файле, полет нормальный.
Код:
#include <Excel.au3>

$oExcel = _Excel_Open()
_Excel_BookOpen($oExcel, "D:\12345.xlsx") ;уже ждет открытия файла, дополнительных ожиданий не требуется
Sleep(3000)
$oExcel.Sheets(3).Activate
 
Автор
G

Grell

Новичок
Сообщения
127
Репутация
0
hedji, не работает.

У меня установлено несколько экселей.
Я спрашивал - как открыть этот файл экселем по адресу "C:\программа эксель\EXCEL.EXE"
Но сейчас скрипт открывает файл - экселем по адресу "C:\программа эксель4\EXCEL.EXE"
 

hedji

Продвинутый
Сообщения
408
Репутация
90
Код:
#include <Excel.au3>

$filename="12345.xlsx"
$fpath="D:\"

Run("C:\Program Files\Microsoft Office\Office16\EXCEL.EXE /X " & $fpath & $filename)

WinWaitActive($filename)

$oExcel=_Excel_BookAttach($fpath & $filename)
Sleep(3000)
$oExcel.Sheets(3).Activate
 
Автор
G

Grell

Новичок
Сообщения
127
Репутация
0
hedji
Теперь заработало. Спасибо.
 
Верх