Excel VBA говорит, что мой индекс не может быть найден

#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»)] вот так.