Насколько я понимаю, функция Copy()
автоматически устанавливает новый лист как ActiveSheet
.Так что вам не нужно будет искать его по индексу.Вы можете просто получить доступ к свойствам объекта ActiveSheet
:
With ThisWorkbook.Worksheets
.Item("Agent Template").Copy After:=.Item("Summary")
End With
With ThisWorkbook.ActiveSheet
.Name = ThisWorkbook.Worksheets("Summary").Range("E5").Value2
.Range("C4").Value = .Name
End With
Если мое понимание верно, то я бы предпочел этот способ, поскольку вы можете потерять контроль над индексированием, если пользователи начнут перемещать листы.