Всем всего хорошего.Что-то я делаю не так, а что не пойму.
Требуется собрать данные со всех листов из определенных ячеек на один лист в умную таблицу. В общем-то всё работает, но только если код запускается не с того листа, куда всё должно собираться. А я как раз хотел подвесить макрос на кнопочку именно на листе куда производится сбор.
Что я делаю не так? Я уж и опрашиваемый лист пробовал активировать, понимаю что глупо, но не помогло.
Требуется собрать данные со всех листов из определенных ячеек на один лист в умную таблицу. В общем-то всё работает, но только если код запускается не с того листа, куда всё должно собираться. А я как раз хотел подвесить макрос на кнопочку именно на листе куда производится сбор.
Что я делаю не так? Я уж и опрашиваемый лист пробовал активировать, понимаю что глупо, но не помогло.
Код |
---|
For i = Worksheets.Count To 2 Step -1 ' Проход по листам iDate = Worksheets(i).Name For z = 1 To UBound(task) Set Findtask1 = Worksheets(i).UsedRange.Find(task(z), , xlValues, xlPart) ' начало блока If z = UBound(task) Then lastrow = Cells(Rows.Count, 3).End(xlUp).Row Set Findtask2 = Cells(lastrow + 1, 3) Else Set Findtask2 = Worksheets(i).UsedRange.Find(task(z + 1), , xlValues, xlPart) ' конец блока End If For x = Findtask1.Row + 1 To Findtask2.Row - 1 If IsEmpty(Cells(x, 3)) = False Then Worksheets(i).Activate Set NewRow = tbl.ListRows.Add With NewRow.Range .Columns(1).Value = iDate .Columns(2).Value = Sheets(i).Cells(x, 2).Value .Columns(3).Value = Findtask1 .Columns(4).Value = Sheets(i).Cells(x, 3).Value .Columns(5).Value = Sheets(i).Cells(x, 4).Value .Columns(6).Value = Sheets(i).Cells(x, 5).Value .Columns(7).Value = Sheets(i).Cells(x, 6).Value .Columns(8).Value = Sheets(i).Cells(x, 7).Value End With End If Next x Next z Next i |