Страницы: 1
RSS
Макрос на добавления листов из шаблона, Макрос на добавления листов из шаблона присваимая имя по порядку
 
Всем привет!!! Народ подскажите пожалуйста что тут неправильно?
Код
Sub Copy1()
    Dim shRes As Worksheets
    Set shRes = Sheets("лист 1").Copy(Before:=ActiveSheet)
    If shRes.Index = 1 Then
        shRes.Name = 1
    Else
        shRes.Name = shRes.Previous.Name + 1
    End If
End Sub
 
Zloy-Ramses, метод sheet.copy НЕ возвращает ссылку на лист. Но новый лист становится активным, поэтому
Код
Sub Copy1()
     Sheets("лист 1").Copy Before:=ActiveSheet
    If ActiveSheet.Index = 1 Then
        ActiveSheet.Name = 1
    Else
        ActiveSheet.Name = ActiveSheet.Previous.Name + 1
    End If
End Sub
 
а и такая конструкция не исключит ошибку
Код
If ActiveSheet.Index = 1 Then  
ActiveSheet.Name = 1

если в следующий раз запустим макрос с активного созданного листа, соответственно, с именем "1", мы получим новый лист с индексом 1, которому попытаемся присвоить существующее имя листа "1"

и объявление переменной вроде не

Код
Dim shRes As Worksheets

а

Код
Dim shRes As Worksheet
Изменено: yozhik - 02.04.2018 16:26:20
 
может так надо?
Код
Sub Copy1()
 Sheets("лист 1").Copy Before:=ActiveSheet
 ActiveSheet.Name = ThisWorkbook.Worksheets.Count - 1
End Sub
Страницы: 1
Наверх