VBA: импорт листов из другой книги, содержащей макрос

#excel #vba #macros

#excel #vba #макросы

Вопрос:

Я создал простой макрос в Excel, чтобы открыть другую книгу и скопировать листы в книгу. Это отлично работало для обычных файлов xls, но когда я попытался использовать его в файле .xltm, содержащем макрос, я получил ошибку out of bounds из-за содержащегося в нем макроса.

Есть ли какой-либо возможный способ в Excel vba открыть книгу и скопировать в нее лист, содержащий макрос?

Мой код

 Dim directory As String, fileName As String, sheet As Worksheet, total As Integer
Application.ScreenUpdating = False
Application.DisplayAlerts = False
directory = "c:"
fileName = Dir(directory amp; "book1.xls")
Workbooks.Open (directory amp; fileName)
For Each sheet In Workbooks(fileName).Worksheets
   total = ThisWorkbook.Worksheets.Count
   Workbooks(fileName).Worksheets(sheet.Name).Copy after:=ThisWorkbook.Worksheets(total)

Next sheet
  

Спасибо, ребята,

Комментарии:

1. просто чтобы указать, что внутри For Each sheet цикла вы можете просто использовать sheet вместо Workbooks(fileName).Worksheets(sheet.Name)

Ответ №1:

Может ли это иметь какое-то отношение к вашему

 fileName = Dir(directory amp; "book1.xls")
  

когда вместо этого используется файл xlsm?

Комментарии:

1. Возможно, вам нужно сохранить файл как .xlsm перед копированием листов.

2. Здравствуйте. Спасибо за ответ. Я изменил имя файла на соответствующий файл, который содержит кнопку и макрос, в который он добавляет страницу после нажатия. Отладчик остановился на строке импортированного листа, где он пытается добавить новый лист.