Вам не нужно .Activate
, просто установите книгу без нее.• Вам может пригодиться чтение Как избежать использования Select в Excel VBA .
Также укажите, в какой книге и рабочей таблице этот диапазон равен Range("A1:T350")
.Обратите внимание, что вы Set wbk
дважды на две разные книги.Таким образом, вы должны также использовать две разные переменные, например wbkSource
и wbkDestination
.
Также ваш оператор with With wbk.Sheets(sheets.Count)
бесполезен, если вы не передадите своему диапазону начальный .
, что он должен использовать оператор with: .Range()
Sheets.Add(After:=Sheets(Sheets.Count)).Name = artikl & "_SK" & i 'it's OK
Dim SourceFilePath As String
SourceFilePath = "C:\…..\template_2003_XML.xml"
Dim DestinationFilePath As String
DestinationFilePath = "C:\…..\094-022605-00001_w_macro.xlsm"
Dim wbkSource As Workbook
Set wbkSource = Workbooks.Open(SourceFilePath)
Dim wbkDestination As Workbook
Set wbkDestination = ThisWorkbook 'Workbooks("094-022605-00001_w_macro")
wbkSource.Worksheets("source sheet").Range("A1:T350").Copy
With wbkDestination.Sheets(sheets.Count)
.Range("A1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End With
wbkSource.Close SaveChanges:=False
Рекомендую всегда активировать Option Explicit
: в редакторе VBA перейдите на Инструменты › Параметры › Требуется переменная декларация .