Любой код в самой рабочей таблице должен использовать Me
для ссылки на себя - таким образом, он будет работать при копировании / дублировании
Любой другой код должен использовать рабочую таблицу в качестве аргумента или объекта уровня модуля:
Option Explicit
Sub CreateReport(TargetSheet As Worksheet)
TargetSheet.Cells(1,1).Value = "Hello"
End Sub
или
Option Explicit
Public TargetSheet AS Worksheet
Sub CreateReport()
If TargetSheet Is Nothing Then Exit Sub 'In case the object has not been set
TargetSheet.Cells(1,1).Value = "Hello"
End Sub
Затем вы можете продублировать «основной» шаблон листа и запустить макросы для его назначения