2014-01-27 7 views
1

Мне нужно написать макрос, который объединяет все листы из учебника ISOHODataCopy1.xls в книгу zmastertablestest1.xlsm. Они являются единственными двумя файлами в папке Source_and_Master_Data. Я использую этот код:Ошибка при объединении рабочих листов из одной книги в другую

Sub GetISOSheets() 
Path = "C:\Users\turner\Desktop\Source_and_Master_Data\" 
Filename = Dir(Path & "*.xls") 
Do While Filename <> "" 
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True 
For Each Sheet In ActiveWorkbook.Sheets 
Sheet.Copy After:=ThisWorkbook.Sheets(1) 
Next Sheet 
Workbooks(Filename).Close 
Filename = Dir() 
Loop 

End Sub 

код Это VBA успешно объединяет рабочие листы в главной книге, но появляются две коробки ошибки.

  1. Файл не найден: «C: \ Users \ имя \ AppData \ Local \ Temp \ VBF10tmp
  2. Ошибка выполнения '1004': метод копирования класса листа не удалось.

Ошибка возникает из-за этой строки кода: Sheet.Copy После: = ThisWorkbook.Sheets (1)

Я хочу, чтобы иметь возможность запускать этот макрос и другой макрос в то же время, но ошибки мешают этому. ** Как я могу устранить эти ошибки? **

ответ

1

я получал две ошибки, потому что основная рабочая книга была в той же папке, что и рабочая таблица ISOHODataCopy1.xls ook, поэтому он пытался копировать себя по существу. Когда я вынул из рабочей папки книгу мастера, макрос работал отлично.

0

Знаете ли вы, имеют ли ваши исходные данные файлы excel определенные имена? MS помощь ниже могуществе дает вам подсказку:

Microsoft helps

0

Try замена:

For Each Sheet In ActiveWorkbook.Sheets 
Sheet.Copy After:=ThisWorkbook.Sheets(1) 
Next Sheet 

с:

For Each thisSheet In ActiveWorkbook.Worksheets 
thisSheet.Copy After:=ThisWorkbook.Worksheets(1) 
Next thisSheet 
+0

После того как я изменил код, я получил эту ошибку: Ошибка времени выполнения «424»: требуется объект. Ошибка возникает в этой строке кода: Worksheet.Copy After: = ThisWorkbook.Worksheets (1). – user3242245

+0

Моя ошибка, плохое копирование. –

Смежные вопросы