Имеется книга на 100 листов. На каждом листе в ячейке (допустим, В10) занесена Фамилия И.О. Надо сложить листы так, чтобы в сводном листе фамилии тоже в ячейке В10 были через запятую. Пробовал через СЦЕПИТЬ, но там надо для каждого листа вводить ссылку- замучаешься. Можно ли как для чисел через ":"? Т.е. Указать только первый и последний лист. Помогите!!!
Имеется книга на 100 листов. На каждом листе в ячейке (допустим, В10) занесена Фамилия И.О. Надо сложить листы так, чтобы в сводном листе фамилии тоже в ячейке В10 были через запятую. Пробовал через СЦЕПИТЬ, но там надо для каждого листа вводить ссылку- замучаешься. Можно ли как для чисел через ":"? Т.е. Указать только первый и последний лист. Помогите!!!Бильбо
"Если вода в бачке шумит, значит сиденье унитаза еще теплое..."
Я не силен в Excel. Что такое VBA? Какой выход из ситуации? Просто мне надо объединить заявки на обучение медсестер. Они поступают в стандартной форме в виде таблицы. Порядка 100 заявок. В них фамилии слушателей. Я их копирую в одну книгу (одна заявка - один лист). В итоге все надо вывести на один (предположим последний) лист.
Я не силен в Excel. Что такое VBA? Какой выход из ситуации? Просто мне надо объединить заявки на обучение медсестер. Они поступают в стандартной форме в виде таблицы. Порядка 100 заявок. В них фамилии слушателей. Я их копирую в одну книгу (одна заявка - один лист). В итоге все надо вывести на один (предположим последний) лист.Бильбо
"Если вода в бачке шумит, значит сиденье унитаза еще теплое..."
Sub Bilbo() Dim ws As Worksheet Dim Val As String Static Counter As Long For Each ws In ThisWorkbook.Worksheets Val = ws.Range("c4").Offset(Counter + 1).Value + ", " + Val Next ws Worksheets("Сводный").Range("c4").Offset(Counter + 1).Value = Val Counter = Counter + 1 If Counter > 4 Then Counter = 0 ElseIf Counter > 4 Then Exit Sub Else Call Bilbo End If End Sub
[/vba]
Вариант:[vba]
Код
Option Explicit
Sub Bilbo() Dim ws As Worksheet Dim Val As String Static Counter As Long For Each ws In ThisWorkbook.Worksheets Val = ws.Range("c4").Offset(Counter + 1).Value + ", " + Val Next ws Worksheets("Сводный").Range("c4").Offset(Counter + 1).Value = Val Counter = Counter + 1 If Counter > 4 Then Counter = 0 ElseIf Counter > 4 Then Exit Sub Else Call Bilbo End If End Sub
О, Великий! Именно так. Но если я добавляю еще лист с заявкой, то в сводном у меня данные не изменяются. Или в самих заявках надо будет менять одну или несколько фамилий. Этот пример был на 4 заявки, а их бывает до 100. Я не пойму. (Я старый больной хоббит...)
О, Великий! Именно так. Но если я добавляю еще лист с заявкой, то в сводном у меня данные не изменяются. Или в самих заявках надо будет менять одну или несколько фамилий. Этот пример был на 4 заявки, а их бывает до 100. Я не пойму. (Я старый больной хоббит...)Бильбо
"Если вода в бачке шумит, значит сиденье унитаза еще теплое..."
Прошу прощения! Кажется я разобрался! После добавления новой заявки надо просто щелкнуть по строке формул в сводном листе. Происходит обновление!!! Поковыряюсь и если что-то не так, позвольте обратиться? Спасибо!!!
Прошу прощения! Кажется я разобрался! После добавления новой заявки надо просто щелкнуть по строке формул в сводном листе. Происходит обновление!!! Поковыряюсь и если что-то не так, позвольте обратиться? Спасибо!!!Бильбо
"Если вода в бачке шумит, значит сиденье унитаза еще теплое..."
если я добавляю еще лист с заявкой, то в сводном у меня данные не изменяются
Поправил:[vba]
Код
Sub Bilbo() Dim ws As Worksheet Dim Val As String Static Counter As Long Dim CountSheets As Long CountSheets = ThisWorkbook.Worksheets.Count - 1 For Each ws In ThisWorkbook.Worksheets Val = ws.Range("c4").Offset(Counter + 1).Value + ", " + Val Next ws Worksheets("Сводный").Range("c4").Offset(Counter + 1).Value = Val Counter = Counter + 1 If Counter > CountSheets Then Counter = 0 ElseIf Counter > CountSheets Then Exit Sub Else Call Bilbo End If End Sub
если я добавляю еще лист с заявкой, то в сводном у меня данные не изменяются
Поправил:[vba]
Код
Sub Bilbo() Dim ws As Worksheet Dim Val As String Static Counter As Long Dim CountSheets As Long CountSheets = ThisWorkbook.Worksheets.Count - 1 For Each ws In ThisWorkbook.Worksheets Val = ws.Range("c4").Offset(Counter + 1).Value + ", " + Val Next ws Worksheets("Сводный").Range("c4").Offset(Counter + 1).Value = Val Counter = Counter + 1 If Counter > CountSheets Then Counter = 0 ElseIf Counter > CountSheets Then Exit Sub Else Call Bilbo End If End Sub