Копирование листа и присвоение иму нового имени

Программирование на Visual Basic for Applications
K.Sergey
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 115
Зарегистрирован: 11.10.2004 (Пн) 0:42
Откуда: Санкт-Петербург

Копирование листа и присвоение иму нового имени

Сообщение K.Sergey » 24.08.2005 (Ср) 16:55

Подскажите, кто знает, как скопировать лист и назначить ему имя. Нужно чтобы один лист был эталонным (скрытым) и он копировался по команде пользователя.

Была идея сделать следующим образом:

Dim MySh As Worksheet
Set MySh = Sheets("Template").Copy After:=Sheets(ThisWorkbook.Sheets.Count)
MySh.Name = InputBox("Inter sheet name:")

Не работает :( , ругается на второй строке.
Life is what happens to us when we are planning to do something else...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 24.08.2005 (Ср) 17:00

.Copy не возвращает объекта.

Я делаю так:
Sheets("Template").Copy After:=Sheets(ThisWorkbook.Sheets.Count)
Set MySh = Sheets(ThisWorkbook.Sheets.Count)
Lasciate ogni speranza, voi ch'entrate.

K.Sergey
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 115
Зарегистрирован: 11.10.2004 (Пн) 0:42
Откуда: Санкт-Петербург

Сообщение K.Sergey » 24.08.2005 (Ср) 17:27

Спасибо за наводку.
Но в моем случае это не сработало. Действительно, если копируемый лист не скрыт (или если нет скрытых листов; я еще не разобрался) - данный метод решает задачу. Но у меня он переименовывает постоянно один лист и добавляет копии "Template(N)", где N - номер копии. Не помогает даже перед копированием назначение этому листу Visible = true.
Life is what happens to us when we are planning to do something else...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 24.08.2005 (Ср) 17:42

Тогда имеет смысл перед копированием запомнить в коллекцию все имеющиеся листы, а после копирования найти тот лист, которого в коллекции нет...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

K.Sergey
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 115
Зарегистрирован: 11.10.2004 (Пн) 0:42
Откуда: Санкт-Петербург

Сообщение K.Sergey » 24.08.2005 (Ср) 18:13

Тогда имеет смысл перед копированием запомнить в коллекцию все имеющиеся листы, а после копирования найти тот лист, которого в коллекции нет...


Так и сделаю!
Всем спасибо за помощь!
Life is what happens to us when we are planning to do something else...


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 58

    TopList