|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.08.2015, 20:31 | #1 |
Регистрация: 23.08.2015
Сообщений: 9
|
Данные из разных листов книги на один лист
Добрый день!
Существует книга, в которой несколько десятков листов. На всех листах одинаковая форма - значения в форме, соответственно, разные (собирается информация по филиальной сети). Названия листов соответствуют названиям филиалов. Очень нужно, чтобы в этой же книге формировался новый лист, на котором в первом столбце выводились названия листов, а начиная со второго столбца определенный диапазон ячеек с каждого из листов. Предположим, С102:Н102. Заранее очень благодарна. P.S. Попыталась написать. Код ниже. Он работает, но мне кажется, можно не перечислять ячейки, а задать диапазон. Sub SheetsList226() Application.ScreenUpdating = False Sheets.Add(Before:=Sheets(1)).Name = "List226" Cnt = 0 For Elem = 2 To Sheets.Count Sheets(1).Cells(1, 1).Offset(Cnt, 0) = Sheets(Elem).Name Sheets(1).Cells("2,2").Offset(Cnt, 0) = Sheets(Elem).Range("C102") Sheets(1).Cells("3,3").Offset(Cnt, 0) = Sheets(Elem).Range("D102") Sheets(1).Cells("4,4").Offset(Cnt, 0) = Sheets(Elem).Range("E102") Sheets(1).Cells("5,5").Offset(Cnt, 0) = Sheets(Elem).Range("F102") Sheets(1).Cells("6,6").Offset(Cnt, 0) = Sheets(Elem).Range("G102") Sheets(1).Cells("7,7").Offset(Cnt, 0) = Sheets(Elem).Range("H102") Cnt = Cnt + 1 Next Elem Application.ScreenUpdating = False End Sub |
23.08.2015, 22:21 | #2 |
Форумчанин
Регистрация: 03.11.2006
Сообщений: 524
|
Код:
Код:
|
24.08.2015, 11:30 | #3 |
Регистрация: 23.08.2015
Сообщений: 9
|
Спасибо большое! Всё работает.
Еще вопрос: на новом листе мы получаем чисто значения, т.е. если на исходных листах что-то изменится, то на новом это не отразится. Есть ли вариант, провернуть такое же заполнение, но ссылками на другие листы? Спасибо. Подозреваю, что что-то типа этого: Sub Worksheet_Activate() Dim sh As Worksheet For Each sh In ThisWorkbook.Worksheets Debug.Print sh.Name If sh.Index <> ThisWorkbook.ActiveSheet.Index Then Cells(sh.Index, 1).Value = sh.Name Cells(sh.Index, 2).FormulaR1C1 = "=INDIRECT(CONCATENATE(RC[-1],""!$C$102""))" Cells(sh.Index, 3).FormulaR1C1 = "=INDIRECT(CONCATENATE(RC[-2],""!$D$102""))" Cells(sh.Index, 4).FormulaR1C1 = "=INDIRECT(CONCATENATE(RC[-3],""!$E$102""))" Сells(sh.Index, 5).FormulaR1C1 = "=INDIRECT(CONCATENATE(RC[-4],""!$F$102""))" Cells(sh.Index, 6).FormulaR1C1 = "=INDIRECT(CONCATENATE(RC[-5],""!$G$102""))" Cells(sh.Index, 7).FormulaR1C1 = "=INDIRECT(CONCATENATE(RC[-6],""!$H$102""))" End If Next sh End Sub но не знаю, как из этого сделать цикл. |
24.08.2015, 13:27 | #4 |
Форумчанин
Регистрация: 27.10.2014
Сообщений: 248
|
подозраваю что сами не очень понимаете что Вам нужно....
|
24.08.2015, 19:01 | #5 |
Форумчанин
Регистрация: 03.11.2006
Сообщений: 524
|
kangaroo, Если нужны ссылки, то в первом варианте - замените
Код:
Код:
Код:
|
24.08.2015, 21:49 | #6 |
Регистрация: 23.08.2015
Сообщений: 9
|
СПАСИБО!!!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как в один лист можно собрать данные с других листов | Lis000iq | Microsoft Office Excel | 12 | 24.08.2015 12:51 |
Нужно перенести все данные с листов одной книги на один | Наталья-я | Microsoft Office Excel | 3 | 18.02.2015 21:35 |
Транспонирование множества данных из разных книгах или из разных листов на 1 лист посредством макроса | Тантана | Microsoft Office Excel | 6 | 18.12.2014 13:04 |
как создать отчет используя данные другой книги с разных листов? | AKSENOV048 | Помощь студентам | 0 | 03.08.2011 12:30 |
Копировать данные из разных ячеек по нескольким листам в один лист | Dorvir | Microsoft Office Excel | 2 | 11.06.2008 10:10 |