В готовый макрос был добавлен только метод PasteSpecial(xlPasteValues), чтобы вставить значения, а не формулы. Почему макрос выдает ошибку 400?
| Код |
|---|
Sub CollectDataFromAllSheets()
Dim ws As Worksheet
Set wbCurrent = ActiveWorkbook
Workbooks.Add
Set wbReport = ActiveWorkbook
'копируем на итоговый лист шапку таблицы из первого листа
wbCurrent.Worksheets(1).Range("A1:D1").Copy Destination:=wbReport.Worksheets(1).Range("A1")
'проходим в цикле по всем листам исходного файла
For Each ws In wbCurrent.Worksheets
'определяем номер последней строки на текущем листе и на листе сборки
n = wbReport.Worksheets(1).Range("A1").CurrentRegion.Rows.Count
'задаем исходный диапазон, который надо скопировать с каждого листа - любой вариант на выбор:
Set rngData = ws.Range("A1:D5") 'фиксированный диапазон или
'копируем исходный диапазон и вставляем в итоговую книгу со следующей строки
rngData.Copy Destination:=wbReport.Worksheets(1).Cells(n + 1, 1).PasteSpecial (xlPasteValues)
Next ws
End Sub
|