Что нового

Выравнять ширину столбцов (колонок) в уже открытом файле Exel

DyadyaGenya

Знающий
Сообщения
300
Репутация
10
Доброго времени суток. Опять проблемы с уже открытым файлом эксель. Пробую выровнять колонки в уже открытом файле. Пробую сделать так:
Код:
#include <Excel.au3>
Local $sWorkbook = "path\name.xlsx"
Local $oWorkbook = _Excel_BookAttach($sWorkbook)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookOpen Example 1", "Error opening '" & $sWorkbook & "'." & @CRLF & "@error = " & @error & ", @extended = " & @extended & '  ошибка')
$oWorkbook.Columns('A:S' ).EntireColumn.AutoFit

В таком виде ругается
Код:
The requested action with this object has failed.:
$oWorkbook.Columns('A:S' ).EntireColumn.AutoFit
$oWorkbook^ ERROR

С файлом, который открывает сам скрипт все получается, если начинать с:
Код:
Local $oExcel = _Excel_Open()
.......
$oExcel.Columns('A:S' ).EntireColumn.AutoFit
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Код:
#include <Excel.au3>

Local $oExcel = _Excel_Open()
Local $sWorkbook = @ScriptDir&"\name.xlsx"
Local $oWorkbook = _Excel_BookAttach($sWorkbook)
$oExcel.Worksheets('Лист1').Columns('A:S').AutoFit
;Или так
$oExcel.Activesheet.Columns('A:S').AutoFit
;или так для всех колонок в активном листе
$oExcel.Cells.Columns.Autofit
 
Автор
D

DyadyaGenya

Знающий
Сообщения
300
Репутация
10
Проверю через пару дней на работе, но у меня в таком виде почему-то там вызывало дополнительное окошко экселя, а дома все нормально сработало
Сообщение автоматически объединено:

Этот параметр отвечает за автовыравнивание. А если хочу заданную ширину, или чтоб был перенос по словам? Где бы список этих параметров подсмотреть? В UDF сходу не нашел
 
Последнее редактирование:

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
А если хочу заданную ширину, или чтоб был перенос по словам? Где бы список этих параметров подсмотреть? В UDF сходу не нашел
Это нужно не в UDF смотреть, а в документации к офису, там примеры есть, но на VB . В AutoIt тоже есть много констант, например для Excel можно посмотреть в файле "ExcelConstants.au3"
Сообщение автоматически объединено:

А если хочу заданную ширину
Попробуйте так:
Код:
$oExcel.Activesheet.Columns(3).ColumnWidth = 150

Сообщение автоматически объединено:

или чтоб был перенос по словам
Может так (не проверял)
Код:
$oExcel.Activesheet.Range('B2').WrapText = True
 
Последнее редактирование:
Верх