2015-03-05 11 views
0

Я написал следующий код.Копирование рабочего листа из исходного файла в активную книгу

Sub copysheet() 
Dim source_wb As Workbook 
Set source_wb = Workbooks.Open("H:\Q1Data.xlsx") 

source_wb.Worksheets("Sheet1").Copy Before:=ActiveWorkbook.Worksheets("Sheet1") 

ActiveWorkbook.Save 
ActiveWorkbook.Close 

End Sub 

Я думаю, что проблема заключается в копировании пасты. Я нашел другие коды, но я не хочу усложнять свой код для такой простой цели. Любая помощь приветствуется. Благодарю.

+0

Вы также можете попробовать использовать 'ThisWorkbook' вместо' ActiveWorkbook'. Когда вы открываете файл, вы переносите фокус на эту книгу и, таким образом, становитесь «ActiveWorkbook». Использование 'ThisWorkbook' позволяет вам работать с книгой, содержащей код, а не текущий активный. – L42

ответ

0

Как прокомментировал, вы также можете попробовать ниже. НТН.

source_wb.Worksheets("Sheet1").Copy Before:=ThisWorkbook.Worksheets("Sheet1") 
0

Установите ActiveWorkbook в качестве переменной и ссылаться на него в процессе копирования листа

Dim current_wb as Workbook 
Dim source_wb As Workbook 

Set current_wb = ActiveWorkbook 
Set source_wb = Workbooks.Open("H:\Q1Data.xlsx") 

source_wb.Worksheets("Sheet1").Copy Before:=current_wb.Worksheets("Sheet1") 

current_wb.Save 
current_wb.Close 
Смежные вопросы