Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Макрос для создания и именования листов в документе
 
Доброго дня!
Извините за наглость конечно....но!
Подскажите пожалуйста как сделать такой макрос, чтобы он:
(1) брал из столбца А на первом (№1), допустим, листе некое символьное значение;
(2) делал копию листа №2;
(3) присваивал вновь созданной копии листа имя из пункта (1);
(4) вставлял в определенную (всегда одну и ту же) ячейку на новом листе значение из пункта (1);
(5) повторял пункты (1)- (4) для следующего значения из столбца А на первом листе;
Спасибо
Изменено: john22255 - 14 Апр 2015 15:27:13
 
Запишите пункты 1-4 макрорекордером, приложите файл-пример, с п.5 поможем
Согласие есть продукт при полном непротивлении сторон.
 
 Файл - пример
Изменено: john22255 - 14 Апр 2015 15:56:47
 
Код
Sub rename

   Sheets("список").Select
   Range("A1").Select
   ActiveCell.FormulaR1C1 = "asdfd"
   Sheets("Лист2").Select
   Sheets("Лист2").Copy After:=Sheets(2)
   Sheets("Лист2 (2)").Select
   Sheets("Лист2 (2)").Name = "asdfd"
   Range("A4").Select
   ActiveCell.FormulaR1C1 = "asdfd"
Изменено: john22255 - 14 Апр 2015 15:45:31
 
Подскажите пожалуйста, как зациклить код из поста #4, скажем 50 раз?
И что вписать, чтобы при последующей итерации макрос копировал уже не значение ячейки А1 листа "список", а значение  ячейки А2, А3 ...и т.д
Изменено: john22255 - 14 Апр 2015 16:09:09
 
Циклить можно через цикл: :)
Код
Dim intI as integer

For intI=1 to 50
   sheets("Лист2").copy after:=Sheets("Лист2")
    With Activesheet
       .Name=Sheets("список").Range("A" & intI).Value
    End With
Next intI

Только учтите, если в столбце А листа "список" в диапазоне с 1 по 50 строки будут пустые ячейки, или ячейки, значения которых совпадают с именами уже имеющихся в книге листов, то код будет вываливаться с ошибкой.
Кому решение нужно - тот пример и рисует.
 
Примерно так
Согласие есть продукт при полном непротивлении сторон.
 
Большое спасибо откликнувшимся пользователям!
1. код из поста 6 не копирует название листа в ячейку на этом листе (строки 10 и 11 исходного кода в посте №4). Но листы размножает как нужно! . Спасибо!
2. код пользователя Sanja работает, так как нужно, правда выдает ошибку Run time error 1004, но после нажатия "end" срабатывает как нужно, оставляя правда последний лист с названием Лист2(2), но для меня это не критично. Большое спасибо за помощь, черезвычайно облегчили монотонную работу.
 
Цитата
john22255 написал: работает, так как нужно, правда выдает ошибку
Вот я и жду уточнений: Если в книге уже есть Лист с названием, совпадающим с одним из значений столбца А первого листа, то что делать? Заменять, делать еще одну копию, пропускать?
Согласие есть продукт при полном непротивлении сторон.
 
В моем случае повторов не будет. Все названия из колонки А - уникальны. Ибо этот макрос нужен для создания электронных журналов. С одинаковыми страницами, различающимися наименованием и содержанием ячейки А2 (в Вашем варианте).
Изменено: john22255 - 14 Апр 2015 16:45:15
 
Цитата
john22255 написал: выдает ошибку Run time error 1004, но после нажатия "end" срабатывает как нужно, оставляя правда последний лист с названием Лист2(2)
Вот это возникло тогда, когда Вы нажали на кнопку ВТОРОЙ раз, и т.к. в книге уже были листы с такими именами код вылетел с ошибкой (как и предупреждал Пытливый).

Цитата
john22255 написал: В моем случае повторов не будет
В таком случае и ошибок не будет. Если выполнить этот код ОДИН раз. Поэтому повторю вопрос - см. мой предыдущий пост.

Ответа не дождался. Будем считать, что пропускаем уже имеющиеся листы с совпадающими именами (см.файл)
Изменено: Sanja - 14 Апр 2015 17:00:52
Согласие есть продукт при полном непротивлении сторон.
 
Кросс
Страницы: 1
Читают тему (гостей: 1)