Необходимо перенести данные на сводный лист с обновляемых таблиц на разных листах одной книги, после применения фильтра к данным на листе. Форматирование таблиц одинаковое, только отличается количество строк.
Необходимо перенести данные на сводный лист с обновляемых таблиц на разных листах одной книги, после применения фильтра к данным на листе. Форматирование таблиц одинаковое, только отличается количество строк.konstantin_987
Sub Sbor() Dim Sht As Worksheet Dim iLastRow As Long UsedRange.Offset(1).ClearContents iLastRow = 2 For Each Sht In Worksheets If Sht.Name <> "Сводная" Then ' кроме листа "Сводная" With Sht Sht.UsedRange.Offset(1).Copy Cells(iLastRow, 1) End With End If iLastRow = Cells(Rows.Count, 1).End(xlUp).Row + 2 Next End Sub
[/vba]
В модуль листа "Сводная" [vba]
Код
Sub Sbor() Dim Sht As Worksheet Dim iLastRow As Long UsedRange.Offset(1).ClearContents iLastRow = 2 For Each Sht In Worksheets If Sht.Name <> "Сводная" Then ' кроме листа "Сводная" With Sht Sht.UsedRange.Offset(1).Copy Cells(iLastRow, 1) End With End If iLastRow = Cells(Rows.Count, 1).End(xlUp).Row + 2 Next End Sub
Выдает ошибку "Run-time error '424' Object required" Я новичок в этом деле. Помогите пожалуйста. [moder]Не надо цитировать пост целиком. Это нарушение Правил форума[/moder]
цитата удалена
Выдает ошибку "Run-time error '424' Object required" Я новичок в этом деле. Помогите пожалуйста. [moder]Не надо цитировать пост целиком. Это нарушение Правил форума[/moder]konstantin_987
Сообщение отредактировал Pelena - Воскресенье, 28.02.2016, 08:48
На лист Сводная перенес шапку и все равно выдает ошибку. Ошибка в этом "UsedRange.Offset(1).ClearContents"
По поводу фильтров: 1. На листах 1, 2, 3, 4 применяются фильтры по разным столбцам. 2. А потом макросом на листе сводная собирается вся информация
На лист Сводная перенес шапку и все равно выдает ошибку. Ошибка в этом "UsedRange.Offset(1).ClearContents"
По поводу фильтров: 1. На листах 1, 2, 3, 4 применяются фильтры по разным столбцам. 2. А потом макросом на листе сводная собирается вся информацияkonstantin_987
Макрос д.б. в модуле листа Сводная и запускать его надо находясь на этом листе. Если на листах 1,2,3 и 4 будут применены фильтры, то переносить на лист Сводная нужно только видимые строки.
Макрос д.б. в модуле листа Сводная и запускать его надо находясь на этом листе. Если на листах 1,2,3 и 4 будут применены фильтры, то переносить на лист Сводная нужно только видимые строки.Kuzmich
В 2003 таблицы назывались списками И у списков тоже была такая проперть - DataBodyRange. Так будет работать из любого места книги: [vba]
Код
Sub Sbor() Dim Sht As Worksheet With Sheets("Сводная") .UsedRange.Offset(1).ClearContents For Each Sht In Worksheets If Sht.Name <> "Сводная" Then _ Sht.ListObjects(1).DataBodyRange.SpecialCells( _ 12).Copy .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row + 1, 1) Next End With End Sub
В 2003 таблицы назывались списками И у списков тоже была такая проперть - DataBodyRange. Так будет работать из любого места книги: [vba]
Код
Sub Sbor() Dim Sht As Worksheet With Sheets("Сводная") .UsedRange.Offset(1).ClearContents For Each Sht In Worksheets If Sht.Name <> "Сводная" Then _ Sht.ListObjects(1).DataBodyRange.SpecialCells( _ 12).Copy .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row + 1, 1) Next End With End Sub