_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").Пример
; ******************************************
; Пример 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) ; Закрываем рабочую книгу