_ExcelBookAttach
Возвращает существующий экземпляр объекта открытой рабочей книги Excel (ссылку на COM объект Excel.Application), основываясь на поиске по заданной искомой строке и режиму поиска.
#include <Excel.au3>
_ExcelBookAttach($s_string [, $s_mode = "FilePath"])
Параметры
$s_string | Искомая строка поиска |
$s_mode |
[необязательный] Определяет режим поиска: FileName - Имя открытой книги Excel(н/п "myworkbook.xls") FilePath - Полный путь к открытой книге Excel(н/п "C:\documents\myworkbook.xls") Title - Заголовок открытого окна Excel Внимание!!! - не рекомендуется, так как зависит от множества условностей: 1. От режима в котором Excel открывает книги: а) "в новом окне" или "в новой вкладке" (MS Office 2003) б) параметр "Отображать каждое окно на панели задач" (MS Office 2007) 2. Если книги открываются в теле Excel, то от режима в котором окно книги отображается в теле Excel: "развернутый" - Заголовок окна: "имя активной книги" & " - Microsoft Excel" "свернутый" и "в окне" - Заголовок окна: "Microsoft Excel" |
Возвращаемое значение
Успех: | Возвращает существующий экземпляр объекта открытой рабочей книги Excel (ссылку на COM объект Excel.Application.Workbook) |
Ошибка: | Возвращает 0, Устанавливает значение флага @error = 1 |
Примечания
Аналогичный эффект можно получить воспользовавшись стандартной функцией ObjGet().См. также
_ExcelBookNew, _ExcelBookOpenПример
; **********************************************************************************
; Пример 1 - Возвращает существующий экземпляр объекта открытой рабочей книги Excel.
; **********************************************************************************
#include <Excel.au3>
; Для того чтобы продемонстрировать работу функции _ExcelBookAttach необходима существующая рабочая книга,
; создадим её и сохраним в директории временных файлов...
$TestBook = _ExcelBookNew(0) ; Создаем новую рабочую книгу Excel, не отображая её на экране
_ExcelBookSaveAs($TestBook, @TempDir & "\Test", "xls", 0, 1) ; Сохраняем книгу в директории временных файлов с именем "Test.xls"
_ExcelBookClose($TestBook)
$sFilePath = @TempDir & "\Test.xls" ; абсолютная ссылка на "Test.xls"
_ExcelBookOpen($sFilePath) ; Открываем "Test.xls", не присваивая её объект переменной.
$oExcel = _ExcelBookAttach($sFilePath) ; Используем _ExcelBookAttach с опциональным параметром $s_mode = "по умолчанию" (FilePath)
_ExcelWriteCell($oExcel, "Если вы можете прочитать это - вы преуспели", 1, 1) ; Запись в ячейку книги, объект которой мы получили при помощи в $oExcel
MsgBox(4096, "_ExcelBookAttach | Пример 1", "Демонстрация завершена, нажмите ОК")
_ExcelBookClose($oExcel) ; Закрываем рабочую книгу