Добрый день!буду рад если кто то сможет предложить идею для решения проблемы. Имеется 7 листов(заголовки у них идентичные ) и листок свод.Каждый день люди на своих листках вносят данные9всего 21 столбец).Как можно сделать чтобы данные собирались со всех листов(по 21 столбцу), точнее со всех 7 в один лист СВОД. Причем иногда люди буду изменять некоторые параметры проектов на листах и на их листках данные тянуться со внешних источниках..поэтому наверно нужно данные чтобы копировались на один лист просто как значение. Пытался макросом в режиме записи, но ничего не получилось. вот приложил файлик для примера.Заранее спс
Добрый день!буду рад если кто то сможет предложить идею для решения проблемы. Имеется 7 листов(заголовки у них идентичные ) и листок свод.Каждый день люди на своих листках вносят данные9всего 21 столбец).Как можно сделать чтобы данные собирались со всех листов(по 21 столбцу), точнее со всех 7 в один лист СВОД. Причем иногда люди буду изменять некоторые параметры проектов на листах и на их листках данные тянуться со внешних источниках..поэтому наверно нужно данные чтобы копировались на один лист просто как значение. Пытался макросом в режиме записи, но ничего не получилось. вот приложил файлик для примера.Заранее спсIGOR1280
Sub SheetsConsolidation() Dim wsh As Worksheet, Svod As Worksheet Application.ScreenUpdating = False Set Svod = ActiveSheet 'sheet "свод" is ActiveSheet ''or 'Set Svod = Sheets("свод") Svod.UsedRange.Offset(1).ClearContents For Each wsh In ThisWorkbook.Worksheets If Not wsh Is Svod Then With wsh.Cells(1).CurrentRegion Svod.Cells(Rows.Count, 1).End(xlUp)(2, 1).Resize(.Rows.Count - 1, 22).Value = _ .Offset(1).Value 'Resize(, 22) means columns A...V End With End If Next wsh Application.ScreenUpdating = True End Sub
[/vba] Давайте запишем ваш примерчик в Полезные приемы? Не против? (ну чтобы все было на одном сайте) (вернее, чтобы на одном сайте было все:))
IGOR1280, здравствуйте, попробуйте [vba]
Код
Sub SheetsConsolidation() Dim wsh As Worksheet, Svod As Worksheet Application.ScreenUpdating = False Set Svod = ActiveSheet 'sheet "свод" is ActiveSheet ''or 'Set Svod = Sheets("свод") Svod.UsedRange.Offset(1).ClearContents For Each wsh In ThisWorkbook.Worksheets If Not wsh Is Svod Then With wsh.Cells(1).CurrentRegion Svod.Cells(Rows.Count, 1).End(xlUp)(2, 1).Resize(.Rows.Count - 1, 22).Value = _ .Offset(1).Value 'Resize(, 22) means columns A...V End With End If Next wsh Application.ScreenUpdating = True End Sub
[/vba] Давайте запишем ваш примерчик в Полезные приемы? Не против? (ну чтобы все было на одном сайте) (вернее, чтобы на одном сайте было все:))nilem
Яндекс.Деньги 4100159601573
Сообщение отредактировал nilem - Среда, 02.07.2014, 19:10