Копирование листа из одной книги в другую

Я новичок в Excel и пытаюсь заставить свой VBA скопировать лист в другую книгу с помощью этого кода:

Sub CopySheetl()
Dim wkbSource As Workbook
Dim wkbDest As Workbook
Dim shtToCopy As Worksheet

Set wkbSource = Workbooks.Open("C:\Documents and Settings\wong.zuowei\My Documents\Dropbox\SIP\Report Templates\New Documentation System\2014\June Lines Report.xlsm")
Set wkbDest = Workbooks.Open("C:\Documents and Settings\wong.zuowei\My Documents\Dropbox\SIP\Report Templates\New Documentation System\2014\2014 Lines Report.xlsx")

'set shttocopy = wkbsoure.sheets("name of worksheet")

Set shtToCopy = wkbSource.Sheets(9)

shtToCopy.PasteSpecial wkbDest.Sheets(1)

wkbDest.Save


End Sub

В итоге ничего. Ничего не произошло. Я имею в виду, что код работает нормально, но ничего не делает. Мне нужна помощь!

Редактировать:

Я попробовал другой код, как было предложено:

Sub copy_sh()

Dim sourceSheet As Worksheet
Dim destSheet As Worksheet

'' copy from the source
Workbooks.Open filename:="C:\Documents and Settings\wong.zuowei\My Documents\Dropbox\SIP\Report Templates\New Documentation System\2014\June Lines Report.xlsm"
Set sourceSheet = Worksheets("JuneSummary")
sourceSheet.Activate
sourceSheet.Cells.Select
Selection.copy

'' paste to the destination
Workbooks.Open filename:="C:\Documents and Settings\wong.zuowei\My Documents\Dropbox\SIP\Report Templates\New Documentation System\2014\2014 Lines Report.xlsx"
Set destSheet = Worksheets("June")
destSheet.Activate
destSheet.Cells.Select
destSheet.Paste

'' save & close
ActiveWorkbook.Save
ActiveWorkbook.Close

End Sub

Код работал без ошибок компиляции, но тоже ничего не произошло.


person Desandwich    schedule 03.07.2014    source источник
comment
Откуда вы знаете, что код работает и не завершается между ними? И если это так, можете ли вы поставить точки останова и проверить, где, по вашему мнению, может быть проблема?   -  person hnk    schedule 03.07.2014
comment
Почему бы просто не использовать метод .Copy() и .Save   -  person Sky    schedule 03.07.2014
comment
@hnk - при запуске не возникало ошибок компиляции   -  person Desandwich    schedule 03.07.2014
comment
@Sky как мне это сделать???   -  person Desandwich    schedule 03.07.2014


Ответы (2)


Попробуйте это и дайте мне знать, если это работает

Sub CopySheetl()
    Dim wkbSource As Workbook
    Dim wkbDest As Workbook
    Dim shtToCopy As Worksheet

    Set wkbSource = Workbooks.Open("C:\Documents and Settings\wong.zuowei\My Documents\Dropbox\SIP\Report Templates\New Documentation System\2014\June Lines Report.xlsm")
    Set wkbDest = Workbooks.Open("C:\Documents and Settings\wong.zuowei\My Documents\Dropbox\SIP\Report Templates\New Documentation System\2014\2014 Lines Report.xlsx")

    'set shttocopy = wkbsoure.sheets("name of worksheet")

    ‘Set shtToCopy = wkbSource.Sheets(9)

    ‘shtToCopy.PasteSpecial wkbDest.Sheets(1)

    wkbSource.Sheets(9).Copy after:=wkbDest.Sheets(1)

    wkbDest.Save


End Sub
person Moiety Design    schedule 03.07.2014
comment
Ваш shtToCopy даже не назначен. - person Sky; 03.07.2014
comment
@moiety design возникла ошибка при запуске: метод или элемент данных не найден в строке wkbSource.Sheets(9).Copy after:=shtToCopy.Sheets(1) - person Desandwich; 03.07.2014
comment
Я только что изменил shtToCopy.Sheets(1) на wkbDest.Sheets(1) извините, я просто использую рабочий лист, а не рабочую книгу - person Moiety Design; 04.07.2014

person    schedule
comment
это не сработало! окно vba выполнило код, но на самом деле ничего не изменилось - person Desandwich; 03.07.2014
comment
Пожалуйста, попробуйте еще раз, не забудьте закрыть исходную и конечную книги перед запуском кода. - person Danielle; 03.07.2014
comment
но если я закрою исходную книгу, код в vba тоже закроется - person Desandwich; 07.07.2014