допустим, список полных путей файлов есть в диапазоне ячеек на первом листе Книги1 и надо скопировать один и тот же диапазон из каждой книги из списка в соседние столбцы второго листа Книги1.
Код:
sub MySuperCopy
const filelist = "A1:A50" 'здесь список файлов
const mydata = "A1:C5" 'здесь - диапазон, из которого копировать
dim src_book as workbook, src_range as range, dst_range as range
dim mycell as range
on error resume next
'перебираем ячейки с путями к файлам
for each mycell in thisworkbook.worksheets(1).range(filelist).cells
set src_book = workbooks.open(mycell.value)
if err.number > 0 then
goto nextfile
end if
set src_range = src_book.worksheets(1).Range(mydata)
with thisworkbook.worksheets(2)
set dst_range = .Range(.Cells(1, .UsedRange.Columns.Count + 1), _
.Cells(.Usedrange.Rows.Count, .UsedRange.Columns.Count + src_range.Columns.Count)
end with
dst_range.Value = src_Range.Value
nextfile:
set src_range = nothing
src_book.Close SaveChanges:=false
set dst_range = nothing
set src_book = nothing
next
end sub
P.S. Код не тестировал, т.к. оффиса сейчас под рукой нет.
Социальные закладки