Что нового

_Excel_RangeRead можно ли выбрать column в Excel

shyra1976

Новичок
Сообщения
71
Репутация
0
Код:
_Excel_RangeRead($Workbook_XlsFile, Default, $Workbook_XlsFile.ActiveSheet.Usedrange.Columns("E:E"), 2)


А можно ли выбрат ь E и H и только

Код:
_Excel_RangeRead($Workbook_XlsFile, Default, $Workbook_XlsFile.ActiveSheet.Usedrange.Columns("E:H"), 2)


Он берет от E до H
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
247
Можно
Код:
$Exc=_Excel_Open(False)
$ExcB=_Excel_BookOpen($Exc,@ScriptDir&'/1.xlsx')
$array=_Excel_RangeRead($ExcB,'1', 'E1:H'&$ExcB.ActiveSheet.UsedRange.Rows.Count)
_ArrayDisplay($array)
_Excel_BookClose($ExcB)
 
Автор
S

shyra1976

Новичок
Сообщения
71
Репутация
0
что то не едет Код не возвращает массив вообще
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
247
Код:
$array=_Excel_RangeRead($ExcB,'Здесь имя листа' , 'E1:H'&$ExcB.ActiveSheet.UsedRange.Rows.Count)

Вставьте вместо "1" имя листа ( это я у себя проверял, у меня лист с именем "1") и можно после
Код:
_Excel_RangeRead(......)
вставить временно
Код:
if @error then MsgBox(0,'Error',@error)
что-бы увидеть, какая ошибка.
 
Автор
S

shyra1976

Новичок
Сообщения
71
Репутация
0
Код:
$Exc=_Excel_Open(False)
$ExcB=_Excel_BookOpen($Exc,@ScriptDir&'/New folder.xlsx')
$array=_Excel_RangeRead($ExcB,'ConsumptionTree', 'E1:G'& $ExcB.ActiveSheet.UsedRange.Rows.Count)
 $aDefault = _Excel_RangeRead($ExcB, Default, $ExcB.ActiveSheet.Usedrange.Columns("e:g"), 2)

 if @error then MsgBox(0,'Error',@error)
_ArrayDisplay($aDefault)
_ArrayDisplay($array)
_Excel_BookClose($ExcB)

а мне бы только E и G
F не нужно
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
247
Вам нужны значения только "E"и"G"? Удалите с массива лишнее:
Код:
#include <Array.au3>
$Exc=_Excel_Open(False)
$ExcB=_Excel_BookOpen($Exc,@ScriptDir&'/1.xlsx')
$array=_Excel_RangeRead($ExcB,'ConsumptionTree', 'E1:G'&$ExcB.ActiveSheet.UsedRange.Rows.Count)
if @error then MsgBox(0,'Error',@error)
_ArrayColDelete($array,1)
_ArrayDisplay($array)
_Excel_BookClose($ExcB)

Вам нужны два массива - один со значениями, другой с формулами? Тогда и со второго массива удалите лишнюю колонку:
Код:
$aDefault = _Excel_RangeRead($ExcB, Default, $ExcB.ActiveSheet.Usedrange.Columns("e:g"), 2)
if @error then MsgBox(0,'Error',@error)
_ArrayColDelete($aDefaul,1)
 
Верх