Я пытаюсь запустить очень простой макрос, который, по сути, открывает два файла XLS, а затем копирует из них некоторые диапазоны и вставляет эту информацию в другие диапазоны в целевом файле.Проблема в том, что макрос работает хорошо, но последний диапазон вставляется в лист «Выделение», а не в лист, указанный в коде. Я не могу понять, что происходит, потому что у меня есть книга клонов (макрос здесь изменяется только в нескольких диапазонах), и он работает очень хорошо.
Sub CopySheets()
On Error GoTo eh
Dim Path As String
Dim FileA As String
Dim FileB As String
Dim Filename As String
Dim Filename2 As String
Dim SheetSource5 As String
Dim SheetDest5 As String
'Defining Strings
Path = Sheets("Config").Range("C2").Value
FileA = Sheets("Selection").Range("G23").Value
FileB = Sheets("Selection").Range("H23").Value
Filename = Path & FileA & ".xlsx"
Filename2 = Path & FileB & ".xlsx"
SheetSource1 = "MS1"
SheetSource2 = "MS2"
SheetSource3 = "MS3"
SheetSource4 = "MS4"
SheetSource5 = "MS5"
SheetDest1 = "CTO"
SheetDest2 = "EPSO"
SheetDest3 = "ASO"
SheetDest4 = "SO"
SheetDest5 = "GCCO"
'Defining Current Workbook
Set cwb = ThisWorkbook
'First Import
Set wbk = Workbooks.Open(Filename)
wbk.Worksheets(SheetSource1).Range("L8:M117").Copy
cwb.Sheets(SheetDest1).Range("A1").PasteSpecial xlPasteValues
wbk.Worksheets(SheetSource1).Range("R8:R117").Copy
cwb.Sheets(SheetDest1).Range("C1").PasteSpecial xlPasteValues
wbk.Worksheets(SheetSource1).Range("W8:W117").Copy
cwb.Sheets(SheetDest1).Range("D1").PasteSpecial xlPasteValues
wbk.Worksheets(SheetSource2).Range("L8:M117").Copy
cwb.Sheets(SheetDest2).Range("A1").PasteSpecial xlPasteValues
wbk.Worksheets(SheetSource2).Range("R8:R117").Copy
cwb.Sheets(SheetDest2).Range("C1").PasteSpecial xlPasteValues
wbk.Worksheets(SheetSource2).Range("W8:W117").Copy
cwb.Sheets(SheetDest2).Range("D1").PasteSpecial xlPasteValues
wbk.Worksheets(SheetSource3).Range("L8:M117").Copy
cwb.Sheets(SheetDest3).Range("A1").PasteSpecial xlPasteValues
wbk.Worksheets(SheetSource3).Range("R8:R117").Copy
cwb.Sheets(SheetDest3).Range("C1").PasteSpecial xlPasteValues
wbk.Worksheets(SheetSource3).Range("W8:W117").Copy
cwb.Sheets(SheetDest3).Range("D1").PasteSpecial xlPasteValues
wbk.Worksheets(SheetSource4).Range("L8:M117").Copy
cwb.Sheets(SheetDest4).Range("A1").PasteSpecial xlPasteValues
wbk.Worksheets(SheetSource4).Range("R8:R117").Copy
cwb.Sheets(SheetDest4).Range("C1").PasteSpecial xlPasteValues
wbk.Worksheets(SheetSource4).Range("W8:W117").Copy
cwb.Sheets(SheetDest4).Range("D1").PasteSpecial xlPasteValues
wbk.Worksheets(SheetSource5).Range("L8:M117").Copy
cwb.Sheets(SheetDest5).Range("A1").PasteSpecial xlPasteValues
wbk.Worksheets(SheetSource5).Range("R8:R117").Copy
cwb.Sheets(SheetDest5).Range("C1").PasteSpecial xlPasteValues
wbk.Worksheets(SheetSource5).Range("W8:W117").Copy
cwb.Sheets(SheetDest5).Range("D1").PasteSpecial xlPasteValues
Application.DisplayAlerts = False
ActiveWorkbook.Close False
Application.DisplayAlerts = True
'Second Import
Set wbk = Workbooks.Open(Filename2)
wbk.Worksheets(SheetSource1).Range("L8:M117").Copy
cwb.Sheets(SheetDest1).Range("A112").PasteSpecial xlPasteValues
wbk.Worksheets(SheetSource1).Range("R8:R117").Copy
cwb.Sheets(SheetDest1).Range("C112").PasteSpecial xlPasteValues
wbk.Worksheets(SheetSource1).Range("W8:W117").Copy
cwb.Sheets(SheetDest1).Range("D112").PasteSpecial xlPasteValues
wbk.Worksheets(SheetSource2).Range("L8:M117").Copy
cwb.Sheets(SheetDest2).Range("A112").PasteSpecial xlPasteValues
wbk.Worksheets(SheetSource2).Range("R8:R117").Copy
cwb.Sheets(SheetDest2).Range("C112").PasteSpecial xlPasteValues
wbk.Worksheets(SheetSource2).Range("W8:W117").Copy
cwb.Sheets(SheetDest2).Range("D112").PasteSpecial xlPasteValues
wbk.Worksheets(SheetSource3).Range("L8:M117").Copy
cwb.Sheets(SheetDest3).Range("A112").PasteSpecial xlPasteValues
wbk.Worksheets(SheetSource3).Range("R8:R117").Copy
cwb.Sheets(SheetDest3).Range("C112").PasteSpecial xlPasteValues
wbk.Worksheets(SheetSource3).Range("W8:W117").Copy
cwb.Sheets(SheetDest3).Range("D112").PasteSpecial xlPasteValues
wbk.Worksheets(SheetSource4).Range("L8:M117").Copy
cwb.Sheets(SheetDest4).Range("A112").PasteSpecial xlPasteValues
wbk.Worksheets(SheetSource4).Range("R8:R117").Copy
cwb.Sheets(SheetDest4).Range("C112").PasteSpecial xlPasteValues
wbk.Worksheets(SheetSource4).Range("W8:W117").Copy
cwb.Sheets(SheetDest4).Range("D112").PasteSpecial xlPasteValues
wbk.Worksheets(SheetSource5).Range("L8:M117").Copy
cwb.Sheets(SheetDest5).Range("A112").PasteSpecial xlPasteValues
wbk.Worksheets(SheetSource5).Range("R8:R117").Copy
cwb.Sheets(SheetDest5).Range("C112").PasteSpecial xlPasteValues
wbk.Worksheets(SheetSource5).Range("W8:W117").Copy
cwb.Sheets(SheetDest5).Range("D112").PasteSpecial xlPasteValues
Application.DisplayAlerts = False
ActiveWorkbook.Close False
Application.DisplayAlerts = True
Done:
MsgBox "Information loaded!"
Exit Sub
eh:
MsgBox "The following error occurred because XLS structure for selected month is not standard or data does not exist."
End Sub
Я упростил код, сосредоточив внимание только на SheetDest5
, как показано ниже, но проблема сохраняется:
Sub CopySheets()
On Error GoTo eh
Dim Path As String
Dim FileA As String
Dim FileB As String
Dim Filename As String
Dim Filename2 As String
Dim SheetSource5 As String
Dim SheetDest5 As String
'Defining Strings
Path = Sheets("Config").Range("C2").Value
FileA = Sheets("Selection").Range("G23").Value
FileB = Sheets("Selection").Range("H23").Value
Filename = Path & FileA & ".xlsx"
Filename2 = Path & FileB & ".xlsx"
SheetSource5 = "MS5"
SheetDest5 = "GCCO"
'Defining Current Workbook
Set cwb = ThisWorkbook
'First Import
Set wbk = Workbooks.Open(Filename)
wbk.Worksheets(SheetSource5).Range("L8:M117").Copy
cwb.Sheets("GCCO").Range("A1").PasteSpecial xlPasteValues
Application.DisplayAlerts = False
ActiveWorkbook.Close False
Application.DisplayAlerts = True
End Sub