Существует ряд неотвеченных вопросов о родителях для ссылок на рабочую книгу/рабочие листы/ячейки, но если вы вставляете в ту же книгу, что и код, содержащий код, то что-то подобное должно работать.
Sub updatemultiple()
Workbooks.Open ("C:\Users\akpeko.zigah\Documents\EDC\DESTINATION.xlsm")
Range("B2:F2").Copy Destination:=THISWORKBOOK.Worksheets(“Sheet1”).Range("B2")
'Application.DisplayAlerts = False
ActiveWorkbook.Close False
End Sub
Проблемы возникают из-за того, как вы определяете текущий активный рабочий лист при открытии внешней книги. Если он был открыт, активный рабочий лист изменился, затем закрылся другим человеком или процессом, а затем, когда вы его открыли, он собирается скопировать неправильные ячейки. Если рабочий лист адресата не содержится в рабочей книге, содержащей код, то пункт назначения является неоднозначной ссылкой, которая зависит от текущего состояния среды приложения.
Краткое переписывание вашего кода (с некоторыми вставленными ссылками) может выглядеть следующим образом.
Sub updatemultiple()
Dim wb As Workbook
Set wb = Workbooks.Open("C:\Users\akpeko.zigah\Documents\EDC\DESTINATION.xlsm", ReadOnly:=True)
With wb.Worksheets("Sheet1")
.Range("B2:F2").Copy Destination:=ThisWorkbook.Worksheets(“Sheet1”).Range("B2:F2")
.Close SaveChanges:=False
End With
Set wb = Nothing
End Sub
Короче говоря, быть столь же явно, как вы можете путем определения ссылки рабочей книги, рабочий лист и ячейки для каждой стороны каждой операции. Опора на «то, что активно» может привести только к неприятностям.
какая линия ошибка? –