将数据从一个工作表复制到另一个工作表

时间:2013-09-30 11:44:15

标签: excel vba excel-vba

我正在尝试将数据从一个工作簿复制到另一个工作簿。在互联网上浏览一些后,这是我找到的代码,它产生运行时错误1004

Sub Name_Transfer()
Dim wbSource As Workbook
Dim wbDestination As Workbook

'open the source workbook and select the source sheet
Set wbSource = Workbooks.Open( _
    Filename:="C:\TestFolder\2013 Cockpit Chart.xls")

'Set the destition workbook variable
Set wbDestination = Workbooks("U:\my documents\ATM Platform 2013\Advanced Team Management.xlsm")

'copy the source range
wbSource.Sheets("Sheet1").Range("A2:B4").Copy

'paste the value at E9
wbDestination.Sheets("DataStore").Range("A4:B6").Value = _
wbSource.Sheets("Sheet1").Range("A2:B4").Value

Application.CutCopyMode = False

ActiveWorkbook.Save

End Sub

导致1004错误的原因是什么?可以修复吗?或者有更好的方法来做这件事吗?

2 个答案:

答案 0 :(得分:0)

源中的行数与目标中的行数不匹配。

试试这个

wbDestination.Sheets("Delivery").Range("A4:B6").PasteSpecial (xlPasteValues)

wbDestination.Sheets("DataStore").Range("A4:B6").Value = _
wbSource.Sheets("Sheet1").Range("A2:B4").Value

同时指定

的路径
Set wbDestination = Workbooks("Advanced Team Management.xlsm")

就像wbSource关闭Advanced Team Management.xlsm时的情况一样。

答案 1 :(得分:0)

忘了提到这是在Excel 2007中完成的......

1004错误背后的原因是它正在寻找.xls文件而不是xlsx文件

所以代码看起来应该是这样的

    'open the source workbook and select the source sheet
Set wbSource = Workbooks.Open( _
    Filename:="C:\TestFolder\2013 Cockpit Chart.xlsx")

关闭我刚刚使用的文件

ActiveWorkbook.Close

或者Siddharth如此正确地说要使用:

wbSource.close savechanges:= false

感谢您的帮助贡献者...如果没有您的帮助,我可能永远不会见到这一点。