Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Pozia

Ветеран


Сообщения: 2756
Благодарности: 211

Профиль | Отправить PM | Цитировать


Iska, вплотную сейчас работаю с этим скриптом. Надоедает его все время модифицировать. Теперь он у меня такой:

Код: Выделить весь код
#include <file.au3>

$sTarPath1 = @ScriptDir & '\Звездочка'
$sTarPath2 = @ScriptDir & '\Муфта втулочно пальцевая\Параметры'
$sTarPath3 = @ScriptDir & '\Муфта цепная\Параметры'
$sTarPath4 = @ScriptDir & '\Редуктор\Параметры'
$sTarPath5 = @ScriptDir & '\РМ_1'
$sTarPath6 = @ScriptDir & '\Шкив'
$sTarPath7 = @ScriptDir & '\Электродвигатель'

$aExcelFiles1 = _FileListToArray($sTarPath1, '*.xlsx', 1); Фильтр на файлы xls. Если формат *.xlsx то ставим соответствующий фильтр
For $i = 1 to $aExcelFiles1[0]
	$sFile = $sTarPath1 & '\' & $aExcelFiles1[$i]
	$oExcel = ObjCreate('Excel.Application'); Запускаем экземпляр Excel
	$oExcel.AskToUpdateLinks = False
	$oExcel.WorkBooks.Open($sFile); Открываем файл Excel'ем
	$oExcel.ActiveWorkBook.UpdateLinks; Обновляем ссылки
	$oExcel.ActiveWorkBook.Save; Сохраняем файл
	$oExcel.Application.Quit; Выходим из Excel
	$oExcel = 0; Освобождаем переменную
Next

$aExcelFiles2 = _FileListToArray($sTarPath2, '*.xlsx', 1); Фильтр на файлы xls. Если формат *.xlsx то ставим соответствующий фильтр
For $i = 1 to $aExcelFiles2[0]
	$sFile = $sTarPath2 & '\' & $aExcelFiles2[$i]
	$oExcel = ObjCreate('Excel.Application'); Запускаем экземпляр Excel
	$oExcel.AskToUpdateLinks = False
	$oExcel.WorkBooks.Open($sFile); Открываем файл Excel'ем
	$oExcel.ActiveWorkBook.UpdateLinks; Обновляем ссылки
	$oExcel.ActiveWorkBook.Save; Сохраняем файл
	$oExcel.Application.Quit; Выходим из Excel
	$oExcel = 0; Освобождаем переменную
Next

$aExcelFiles3 = _FileListToArray($sTarPath3, '*.xlsx', 1); Фильтр на файлы xls. Если формат *.xlsx то ставим соответствующий фильтр
For $i = 1 to $aExcelFiles3[0]
	$sFile = $sTarPath3 & '\' & $aExcelFiles3[$i]
	$oExcel = ObjCreate('Excel.Application'); Запускаем экземпляр Excel
	$oExcel.AskToUpdateLinks = False
	$oExcel.WorkBooks.Open($sFile); Открываем файл Excel'ем
	$oExcel.ActiveWorkBook.UpdateLinks; Обновляем ссылки
	$oExcel.ActiveWorkBook.Save; Сохраняем файл
	$oExcel.Application.Quit; Выходим из Excel
	$oExcel = 0; Освобождаем переменную
Next

$aExcelFiles4 = _FileListToArray($sTarPath4, '*.xlsx', 1); Фильтр на файлы xls. Если формат *.xlsx то ставим соответствующий фильтр
For $i = 1 to $aExcelFiles4[0]
	$sFile = $sTarPath4 & '\' & $aExcelFiles4[$i]
	$oExcel = ObjCreate('Excel.Application'); Запускаем экземпляр Excel
	$oExcel.AskToUpdateLinks = False
	$oExcel.WorkBooks.Open($sFile); Открываем файл Excel'ем
	$oExcel.ActiveWorkBook.UpdateLinks; Обновляем ссылки
	$oExcel.ActiveWorkBook.Save; Сохраняем файл
	$oExcel.Application.Quit; Выходим из Excel
	$oExcel = 0; Освобождаем переменную
Next

$aExcelFiles5 = _FileListToArray($sTarPath5, '*.xlsx', 1); Фильтр на файлы xls. Если формат *.xlsx то ставим соответствующий фильтр
For $i = 1 to $aExcelFiles5[0]
	$sFile = $sTarPath5 & '\' & $aExcelFiles5[$i]
	$oExcel = ObjCreate('Excel.Application'); Запускаем экземпляр Excel
	$oExcel.AskToUpdateLinks = False
	$oExcel.WorkBooks.Open($sFile); Открываем файл Excel'ем
	$oExcel.ActiveWorkBook.UpdateLinks; Обновляем ссылки
	$oExcel.ActiveWorkBook.Save; Сохраняем файл
	$oExcel.Application.Quit; Выходим из Excel
	$oExcel = 0; Освобождаем переменную
Next

$aExcelFiles6 = _FileListToArray($sTarPath6, '*.xlsx', 1); Фильтр на файлы xls. Если формат *.xlsx то ставим соответствующий фильтр
For $i = 1 to $aExcelFiles6[0]
	$sFile = $sTarPath6 & '\' & $aExcelFiles6[$i]
	$oExcel = ObjCreate('Excel.Application'); Запускаем экземпляр Excel
	$oExcel.AskToUpdateLinks = False
	$oExcel.WorkBooks.Open($sFile); Открываем файл Excel'ем
	$oExcel.ActiveWorkBook.UpdateLinks; Обновляем ссылки
	$oExcel.ActiveWorkBook.Save; Сохраняем файл
	$oExcel.Application.Quit; Выходим из Excel
	$oExcel = 0; Освобождаем переменную
Next

$aExcelFiles7 = _FileListToArray($sTarPath7, '*.xlsx', 1); Фильтр на файлы xls. Если формат *.xlsx то ставим соответствующий фильтр
For $i = 1 to $aExcelFiles7[0]
	$sFile = $sTarPath7 & '\' & $aExcelFiles7[$i]
	$oExcel = ObjCreate('Excel.Application'); Запускаем экземпляр Excel
	$oExcel.AskToUpdateLinks = False
	$oExcel.WorkBooks.Open($sFile); Открываем файл Excel'ем
	$oExcel.ActiveWorkBook.UpdateLinks; Обновляем ссылки
	$oExcel.ActiveWorkBook.Save; Сохраняем файл
	$oExcel.Application.Quit; Выходим из Excel
	$oExcel = 0; Освобождаем переменную
Next
Могли бы вы его подправить так, чтобы он искал эксели во всех папках что находятся на одном уровне с самим скриптом, и вложенных в этих папках папки? Сейчас выскакивает ошибка, если в какой либо папке, прописанной в скрипте, нет экселя.

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 19:05, 05-04-2011 | #10