Функция _ExcelSheetMove

         Описание функции


_ExcelSheetMove

Перемещает целевой лист, устанавливая его перед или после указанного листа в коллекции листов открытой рабочей книги Excel

#include <Excel.au3>
_ExcelSheetMove($oExcel, $vMoveSheet [, $vRelativeSheet = 1 [, $fBefore = True]])

Параметры

$oExcel Ссылка на COM-объект "Excel.Application" полученная ранее вызванными _ExcelBookOpen(), _ExcelBookNew(), или _ExcelBookAttach()
$vMoveSheet Имя целевого листа или его порядковый номер в коллекции листов данной рабочей книги.
$vRelativeSheet [необязательный] Имя или порядковый номер листа перед которым необходимо разместить целевой лист (по умолчанию=1)
$fBefore [необязательный] Флаг, определяющий перед или после указанного параметром $vRelativeSheet листа вставить перемещаемый целевой лист (True=перед, False=после)(по умолчанию=True)

Возвращаемое значение

Успех:Возвращает 1
Ошибка:Возвращает 0, Устанавливает значение флага ошибки @error:
@error:0 - Скрипт завершил работу без ошибок
1 - Ошибка OLE/COM ($oExcel), возможно указанный объект не существует
2 - Указанный номер листа отсутствует в целевой рабочей книге ($vMoveSheet)
3 - Указанное имя листа отсутствует в целевой рабочей книге ($vMoveSheet)
4 - Указанный номер листа отсутствует в целевой рабочей книге ($vRelativeSheet)
5 - Указанное имя листа отсутствует в целевой рабочей книге ($vRelativeSheet)

Примечания

Внимание!!! В MS Ofiice Excel целые положительные числа могут быть именем листа (н\п "1").
Этот метод воспринимает целые положительные числа переданные в параметр $vMoveSheet или $vRelativeSheet как порядковый номер листа в коллекции листов целевой рабочей книги, все остальные значения воспринимаются как имя листа.
Будьте внимательны при работе с листами, именем которых являются целые положительные числа.

Пример

; ******************************************
; Пример 1 - Перемещает лист основываясь на его порядковом номере в коллекции листов целевой рабочей книги
; ******************************************
#include <Excel.au3>

Local $oExcel = _ExcelBookNew() ; Создает новую рабочую книгу
_ExcelSheetMove($oExcel, 2) ; Перемещаем лист с порядковым номером 2, дополнительные параметры метода не указаны - используются значения "по умолчанию"
MsgBox(4096, "_ExcelSheetMove | Пример 1", 'Обратите внимание на то, что "Лист2" находится перед "Лист1"' & @CRLF & @CRLF & "Нажмите ОК для того чтобы сохранить документ и выйти")
_ExcelBookSaveAs($oExcel, @TempDir & "\Temp.xls", "xls", 0, 1) ; Сохраняем файл в директории временных файлов, перезаписывая если необходимо.
_ExcelBookClose($oExcel) ; Закрываем рабочую книгу

; *****************************************
; Пример 2 - Перемещает лист основываясь на его имени в коллекции листов целевой рабочей книги
; *****************************************
#include <Excel.au3>

Local $oExcel = _ExcelBookNew() ; Создает новую рабочую книгу
_ExcelSheetMove($oExcel, "Лист2") ; Перемещает лист с порядковым номером 2, дополнительные параметры метода, не указаны и используются значения "по умолчанию"
MsgBox(4096, "_ExcelSheetMove | Пример 2", 'Обратите внимание на то, что "Лист2" находится перед "Лист1"' & @CRLF & @CRLF & "Демонстрация завершена, нажмите ОК")
_ExcelBookSaveAs($oExcel, @TempDir & "\Temp.xls", "xls", 0, 1) ; Сохраняем файл в директории временных файлов, перезаписывая если необходимо.
_ExcelBookClose($oExcel) ; Закрываем рабочую книгу

; ****************************************
; Пример 3 - Перемещает лист основываясь на его порядковом номере в коллекции листов целевой рабочей книги
; Демонстрирует использование дополнительных параметров метода _ExcelSheetMove
; ****************************************
#include <Excel.au3>

Local $oExcel = _ExcelBookNew() ; Создает новую рабочую книгу
; Добавляем листов и несколько комбинаций их перемещения
$sSheetName4 = "Лист4"
$sSheetName5 = "Лист5"

_ExcelSheetAddNew($oExcel, $sSheetName4) ; Создаем лист "Лист4"
ToolTip('Обратите внимание: Создан лист "Лист4"')
Sleep(1500) ; Пауза 1,5 сек.

_ExcelSheetMove($oExcel, $sSheetName4, 4, False) ; Перемещаем "Лист4" вставляя его после 4-ого листа, т.е. занимает его место смещая все нижестоящие на одну позицию влево
ToolTip('Обратите внимание: Лист "Лист4" перемещён ')
Sleep(1500) ; Пауза 1,5 сек.

_ExcelSheetAddNew($oExcel, $sSheetName5) ; Создаем лист "Лист5"
ToolTip('Обратите внимание: Создан лист "Лист5"')
Sleep(1500) ; Пауза 1,5 сек.

_ExcelSheetMove($oExcel, $sSheetName5, 5, False) ; Перемещаем "Лист5" вставляя его после 5-ого листа, т.е. занимает его место смещая все нижестоящие на одну позицию влево
ToolTip('Обратите внимание: Лист "Лист5" перемещён ')
Sleep(1500) ; Пауза 1,5 сек.

MsgBox(4096, "_ExcelSheetMove | Пример 2", "Демонстрация завершена, нажмите ОК")
_ExcelBookSaveAs($oExcel, @TempDir & "\Temp.xls", "xls", 0, 1) ; Сохраняем файл в директории временных файлов, перезаписывая если необходимо.
_ExcelBookClose($oExcel) ; Закрываем рабочую книгу