#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. Здравствуйте. Спасибо за ответ. Я изменил имя файла на соответствующий файл, который содержит кнопку и макрос, в который он добавляет страницу после нажатия. Отладчик остановился на строке импортированного листа, где он пытается добавить новый лист.