Функция _ExcelNumberFormat

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


_ExcelNumberFormat

Устанавливает для диапазона ячеек активного листа открытой рабочей книги Excel формат содержащихся в ячейках данных.

#include <Excel.au3>
_ExcelNumberFormat($oExcel, $sFormat, $sRangeOrRowStart [, $iColStart = 1 [, $iRowEnd = 1 [, $iColEnd = 1]]])

Параметры

$oExcel Ссылка на COM-объект "Excel.Application" полученная ранее вызванными _ExcelBookOpen(), _ExcelBookNew(), или _ExcelBookAttach() Внимание!!! Метод использует условные координаты диапазона - координаты верхней левой и нижней правой ячеек (формат ссылок R1C1)
Параметры $sRangeOrRowStart, $iColStart, $iRowEnd, $iColEnd описывают условные координаты этих ячеек.
$sFormat Строка символов условно обозначающих формат содержащихся в ячейке данных (см. примечание)
Внимание!!! обозначения форматов сильно разнятся для MS Office 2007-2010 и MS Office 2003,
а так же в зависимости от того русифицированная ли версия или англоязычная (см.Примеры)
$sRangeOrRowStart Номер строки верхней левой ячейки целевого диапазона
$iColStart [необязательный]Номер столбца верхней левой ячейки целевого диапазона (по умолчанию=1)
$iRowEnd [необязательный]Номер строки нижней правой ячейки целевого диапазона (по умолчанию=1)
$iColEnd [необязательный]Номер столбца нижней правой ячейки целевого диапазона(по умолчанию=1)

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

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

Примечания

Условные обозначения для стандартных форматов (Standard Numeric Format Strings)
см. http://msdn.microsoft.com/en-us/library/dwhawy9k%28v=VS.71%29.aspx
Условные обозначения для определенных пользователем особых форматов (Custom Numeric Format Strings)
см. http://msdn.microsoft.com/en-us/library/0c899ak8%28v=VS.71%29.aspx
Для дополнительную информации по этой теме вы можете так-же обратиться к книге:
"Programming Excel With VBA and .NET," by Steven Saunders and Jeff Webb, ISBN: 978-0-59-600766-9

Пример

; ***************************************************************
; Пример 1 - Изменение формата данных в целевом диапазоне ячеек MS Office 2007-2010
; ***************************************************************
#include <Excel.au3>

Local $oExcel = _ExcelBookNew() ;Создаем новую рабочую книгу

; Циклически заполняем диапазон ячеек случайными числами
For $y = 1 To 10
    For $x = 1 To 10
        _ExcelWriteCell($oExcel, Random(1000, 10000), $x, $y) ;Записываем в ячейку случайное целое число из диапазона от 1000 до 100000
    Next
Next

$sFormat = "[$-F800]dddd, mmmm dd, yyyy" ; "[$-F800]dddd, mmmm dd, yyyy" - условное строковое обозначение формата "long date" (длинная дата)
_ExcelNumberFormat($oExcel, $sFormat, 1, 1, 5, 5) ; диапазон форматирования определен верхней-левой ячейкой(строка=1,столбец=1) и нижней-левой ячейкой(строка=5,столбец=5)

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


; ***************************************************************
; Пример 2 - Изменение формата данных в целевом диапазоне ячеек MS Office 2003
; ***************************************************************
#include <Excel.au3>

Local $oExcel = _ExcelBookNew() ;Создаем новую рабочую книгу

; Циклически заполняем диапазон ячеек случайными числами
For $y = 1 To 10
    For $x = 1 To 10
        _ExcelWriteCell($oExcel, Random(1000, 10000), $x, $y) ;Записываем в ячейку случайное целое число из диапазона от 1000 до 100000
    Next
Next

$sFormat = "$# ##0.00$" ; "$# ##0.00$" - условное строковое обозначение формата "currency" (Валюта)
_ExcelNumberFormat($oExcel, $sFormat, 1, 1, 5, 5) ; диапазон форматирования определен верхней-левой ячейкой(строка=1,столбец=1) и нижней-левой ячейкой(строка=5,столбец=5)

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