Не удается скопировать Range в другую рабочую книгу в офисе VBA 2010 - PullRequest
0 голосов
/ 13 февраля 2019

У меня странная проблема: я не могу запустить следующую подпрограмму:

Sub Copy_Workbook()
   Workbooks("book1").Sheets("Sheet1").Range("a1").Copy _ Workbooks("book2").Sheets(2).Range("a2")
End Sub

У меня есть оба экземпляра xlsm, оба открыты и открыты в одном экземпляре.

Iполучаю проблему Out of range.

Если у кого-то есть идеи, почему это не сработает, можете ли вы дать совет, спасибо.

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Если ваши рабочие книги не были сохранены, то ссылки без их расширения будут работать.

После того, как вы сохраните их, вы должны включить расширение.

Вы можете подтвердить это, создавЗатем новая книга переходит на панель «Немедленно» в IDE VBA и печатает ?workbooks("Book1").name.Будет возвращено «Book1».

Сохраните книгу в формате .xlsm.Вернитесь в панель VBA IDE Immediate и повторно выполните ?workbooks("Book1").name.Он выдаст ошибку «Subscript out of range».

Изменение вашего кода на:

   Sub Copy_Workbook()
   Workbooks("book1.xlsm").Sheets("Sheet1").Range("a1").Copy _
   Workbooks("book2.xlsm").Sheets(2).Range("a2")
End Sub

будет работать!

0 голосов
/ 13 февраля 2019

Будет работать следующая подпрограмма.

Sub Copy_Workbook()
   Workbooks("book1").Sheets("Sheet1").Range("a1").Copy Workbooks("book2").Sheets(2).Range("a2")
End Sub

Необходимо подтвердить:

Открыты две рабочие книги, Book2 имеют не менее 2 (двух) листов.Проверьте правильность написания всех названий листов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...