Что нового

Перенос данных из одного файла Excel в другой

alex1912

Новичок
Сообщения
24
Репутация
0
Добрый вечер. Ни как не получается разобраться как написать скрипт с использованием Excel.
Данный пример взял из видеоролика, но он тоже почему то у меня не запускается.
Подскажите пожалуйста что не так?
Директория правильная.

Код:
#include <Excel.au3>


Local $oExcel_1 = _Excel_Open()
Local $sWorkbook = "C:\Users\alex\Desktop\temp.xlsm"
Local $oWorkbook = _Excel_BookOpen($oExcel_1,$sWorkbook)

WinActivate($oWorkbook)


Local $read1 = _Excel_RangeRead($oWorkbook,Default,"B1")

Local $oExcel_2 = _Excel_Open()
Local $tWorkbook = "C:\Users\alex\Desktop\temp2.xlsm"
Local $pWorkbook = _Excel_BookOpen($oExcel_2,$tWorkbook)

WinActivate($pWorkbook)

_Excel_RangeWrite($pWorkbook,Default,$read1,"B1")
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Что значит "Не запускается" ? Выдаёт какую-то ошибку ? В коде критических ошибок нет, должен работать.
 
Автор
A

alex1912

Новичок
Сообщения
24
Репутация
0
Очень извиняюсь. Ошибся в расширении файла.
Хоть с этим разобрался)

Теперь мне нужно разобраться как сложить все значения из B2-B200, и занести это значение в другой файл.
Подскажите пожалуйста с помощью какой функции это сделать?
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
с помощью какой функции это сделать
Нет такой функции - читайте нужный диапазон в массив , потом в цикле суммируйте все значения , результат записывайте в таблицу.
Код:
;считать как-то так:
Local $read1 = _Excel_RangeRead($oWorkbook,Default,"B2:B200")
$Result=0
For $i=0 to Ubound($read1)-1
	$Result+=$read1[$i]
Next
 
Автор
A

alex1912

Новичок
Сообщения
24
Репутация
0
А подскажите пожалуйста как записывать значение в таблицу excel на определенный лист, например в лист2.
Код:
_Excel_RangeWrite($pWorkbook,Default,$read1,"F31")
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Код:
_Excel_RangeWrite($pWorkbook,'лист2',$read1,"F31")
 
Автор
A

alex1912

Новичок
Сообщения
24
Репутация
0
Большое спасибо! Помогло.
Буду очень благодарен если еще подскажите как решить следующую проблему.
Скрипт не до конца закрывает книгу Excel. Т.е. остается серое окно excel.
Код:
#include <Excel.au3>
Local $oExcel_2 = _Excel_Open()
Local $tWorkbook = "C:\Users\alex\Desktop\temp.xlsx"
Local $pWorkbook = _Excel_BookOpen($oExcel_2,$tWorkbook)
WinActivate($pWorkbook)
sleep ( 2000 )
_Excel_BookClose ($pWorkbook)
 

Вложения

  • Screenshot_14.png
    Screenshot_14.png
    44.7 КБ · Просмотры: 3

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Код:
;На каждый 
Local $oExcel_2 = _Excel_Open()
; по окончании работы Excel делаете
_Excel_Close($oExcel_2)
 
Верх