Если книга закрыта перед запуском скрипта, то всё ок. А вот при уже открытой книге выдаётся ошибка выделения листа? Где я ошибся?
Добавлено:
Решил вопрос так
вместо
Код:
#include <Date.au3>
#include <GUIConstants.au3>
;~ #include <ExcelCOM_UDF.au3>
#include <Excel.au3>
#include <Array.au3>
Opt("SendKeyDownDelay", 50)
Opt("SendKeyDelay", 50)
HotKeySet("{ESC}", "Terminate")
Func Terminate()
Exit 0
EndFunc
;~ ====================== ОТКРЫВАЕМ ИЛИ АКТИВИРУЕМ КНИКУ Excel ==========================
Opt("WinTitleMatchMode", 2) ; Ставим поиск окна по любому слову - флаг 2
$sFilePath = @ScriptDir & "\Файл 2013.xlsm" ;Существующая рабочая книга Excel
If WinExists("Файл 2013") Then
$oExcel = _ExcelBookAttach($sFilePath)
$hWndoExcel = WinGetHandle("Файл 2013", 2)
If @error Then
MsgBox(4096, "Тест Excel", "Ошибка при получении активного объекта Excel. Код ошибки: " & Hex(@error, 8))
Exit
EndIf
Else
MsgBox(64+4096, 'Сообщение', "Книга не открыта ... буду открывать ...:")
$oExcel = _ExcelBookOpen($sFilePath)
$hWndoExcel = WinGetHandle("Файл 2013", 2)
Endif
;~ $hWndoExcel = WinGetHandle("Файл 2013", 2)
WinActivate($hWndoExcel)
;~ ==================== КОНЕЦ: ОТКРЫВАЕМ ИЛИ АКТИВИРУЕМ КНИКУ Excel ============================
;ПЕРЕНОСИМ АДННЫЕ В EXCEL
WinActivate($hWndoExcel)
_ExcelSheetActivate($oExcel, "all") ;активируем лист содержащий данные
$oExcel.WorkSheets("all").Cells(1, 1).Select
Send("+{INS}", 0) ; если в буфере есть данные - то вставляем налист
If MsgBox(1+64+4096, 'Сообщение', 'Вставили данные на лист? Нет - выход') <> 1 Then Exit
Добавлено:
Сообщение автоматически объединено:
Решил вопрос так
Код:
$oExcel.Sheets("all").Select
вместо
Код:
$oExcel.WorkSheets("all").Cells(1, 1).Select