Добрый день. Возникла проблема при сборе данных с разных листов. В ячейках, которые необходимо скопировать в сводную таблицу, имеются формулы, поэтому при копировании в сводной таблице возникает "#ССЫЛКА!". Как скопировать только значения без формул и форматов? Файл и код макроса прилагаю.
Код
Sub Сбор()
Dim Sht As Worksheet
Dim iLastRow As Long
For Each Sht In Worksheets
If Sht.Name <> "Сводка" Then ' кроме листа "общий"
With Sht
iLastRow = Cells(Rows.Count, 4).End(xlUp).Row + 1
.Range("A7").Copy Cells(iLastRow, 4)
.Range("C20").Copy Cells(iLastRow, 5)
.Range("H5").Copy Cells(iLastRow, 6)
.Range("I20").Copy Cells(iLastRow, 7)
Cells(iLastRow, 3) = Sht.Name
End With
End If
Next
End Sub
'добавить
Dim ash as worksheet
set ash=activesheet 'необязательно для активного листа (сводник) назначать переменную, но так удобнее вводить и немного надёжнее в случае случайной активации другого листа в цикле
'изменить
iLastRow = ash.Cells(Rows.Count, 4).End(xlUp).Row + 1
ash.Cells(iLastRow, 4).Value=Sht.Range("A7").Value
или же ещё проще и быстрее - через массивы и Resize
P.S.: 1. оформите свой код соответствующей кнопкой <…> 2. на самом деле, ваш код в "сводку" ничего не копирует, а копирует данные внутри одного листа…
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
yozhik, спасибо - исправил. Я её туда и влепил, потому что подумал, что на одном листе всё происходит. Люблю явные указания - так многих ошибок можно избежать… В таком случае ваш вариант надёжнее будет.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
yozhik, заранее предполагалось использование кнопки для запуска макроса, а она находится на листе со сводной таблицей. Ещё раз спасибо. Ваш комментарий решил мою проблему.