Страницы: 1
RSS
Создание Листов по Шаблону
 
Добрый день!
Есть файл (во вложении). Как создать n листов с названиями из диапазона В5:В10 по шаблону Листа 2?
Изменено: Zubar - 14.01.2015 11:02:20
 
Код
Sub jjj()
    Set sh_pattern = Sheets("Лист2")
    Set rng_sh_names = [Лист1].Range([b5], [b5].End(xlDown))
    Application.ScreenUpdating = False
    For Each cl In rng_sh_names
        sh_pattern.Copy After:=Sheets(Sheets.Count)
        With Sheets(Sheets.Count)
            .Name = cl.Value
            .[a1] = cl.Value
        End With
    Next cl
End Sub
Изменено: JayBhagavan - 13.01.2015 15:37:25

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Спасибо!
Еще один вопрос: Как сделать так, что бы создавалось именно то количество листов, сколько строчек заполнено в колонке B? Т.е если заполнен диапазон B5:B10,то создавалось 6 листов, если с В5:В9, то 5 листов?
Буду признателен за ответ.
 
Совсем забыл((((
И что бы в создаваемых листах в ячейке A1 вводилось наименование листа (т.е тоже, что и в наименовании листа).
Спасибо за понимание.
 
Скорректировал.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Покажете?
 
Zubar, смотрите выше JayBhagavan, во 2 посте скорректировал
Лень двигатель прогресса, доказано!!!
 
Почти достиг апофеоза)
вопрос удален
Excel рулит.
 
Excel рулит. Правила на форуме рулят. Вопрос не по теме.
 
А если необходимо, что бы листы создавались именно между Листом 3 и Листом 4? Такое возможно?
 
Zubar, можно.
Код
Sub jjj()
    Set sh_pattern = [Лист2]
    Set rng_sh_names = [Лист1].Range([b5], [b5].End(xlDown))
    Application.ScreenUpdating = False
    For Each cl In rng_sh_names
        sh_pattern.Copy After:=Sheets([Лист3].Index)
        With Sheets([Лист3].Index + 1)
            .Name = cl.Value
            .[a1] = cl.Value
        End With
    Next cl
End Sub

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
After:=Sheets(Sheets.Count)
заменить на
After:=Sheets(3)
Страницы: 1
Наверх