Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 将工作表从一个工作簿复制到另一个工作簿_Excel_Vba_Worksheet_Copying - Fatal编程技术网

Excel 将工作表从一个工作簿复制到另一个工作簿

Excel 将工作表从一个工作簿复制到另一个工作簿,excel,vba,worksheet,copying,Excel,Vba,Worksheet,Copying,我是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\Ne

我是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

代码运行时没有编译错误,但也没有发生任何问题。

试试这个,告诉我它是否有效

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

您如何知道代码在运行,而不是在两者之间退出?如果是的话,你能把断点放在你认为问题可能出现的地方吗?为什么不使用.Copy()和.Save呢method@hnk-我运行时没有出现编译错误it@Sky我该怎么做???您的shtToCopy甚至没有分配。@部分设计运行时出现错误:“wkbSource.Sheets”行中的“未找到方法或数据成员”(9) .Copy after:=shtToCopy.Sheets(1)“我刚刚将
shtToCopy.Sheets(1)
更改为
wkbDest.Sheets(1)
抱歉,我只是使用了工作表,而不是工作簿。它不起作用!vba窗口执行了代码,但没有任何更改。请重试,记住在运行代码之前关闭源工作簿和目标工作簿。但是如果我关闭源工作簿,vba中的代码也将关闭
Sub CopySheet2()
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.Copy After:=wkbDest.Sheets(1)

wkbDest.Save


End Sub