#excel #vba #copy #paste
#excel #vba #Копировать #вставить
Вопрос:
Я пытаюсь скопировать из одной книги в другую. Я много кодировал в VBA с базами данных Access; однако я никогда не делал этого с Excel. Мой код продолжает выдавать ошибку и говорит, что мой индекс находится вне диапазона. Я просмотрел это, и при его компиляции в основном не могу найти рабочий лист в книге, на которую я ссылаюсь, когда он абсолютно существует, и у меня он назван правильно. Я попытался убедиться, что каждая книга активна перед запуском каждого кода, но в ней все еще есть ошибка. Ошибка в строке 1.
Workstart = Workbooks(FileName).Worksheets("Massamp;C.G_CATIA")
WorkEnd = Workbooks("Copy of FEMAP_APS_Data_revB.xlsm").Worksheets("ReportGroupingInfo")
FirstRow = Workstart.Cells(Workstart.Rows.Count, "D6").End(xlUp).Offset(1).Row
LastRow = WorkEnd.Cells(WorkEnd.Rows.Count, "G").End(xlUp).Offset(1).Row
Workstart.Range("D" amp; FirstRow).Copy_
WorkEnd.Range("G" amp; LastRow).PasteSpecial xlPasteValues, xlPasteSpecialOperationNone, True, True
Комментарии:
1. Похоже, вам не хватает
Set
для первой и второй строк. Вы программно открываетеWorkbooks(FileName)
?FileName
на самом деле может быть проблема.2. Возможно, вам потребуется указать полный путь к
FileName
, если вы еще этого не сделали, в зависимости от того, где он находится.3.
Workstart.Range("D" amp; FirstRow).Copy_
— удалите_
в конце.4. Когда вы присваиваете переменную объекту (в вашем случае рабочему листу), вы должны использовать Set mySheetVariable = [workbook. рабочий лист («sheetname»)] вот так.