我正在尝试将数据从一个工作簿复制到另一个工作簿。在互联网上浏览一些后,这是我找到的代码,它产生运行时错误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错误的原因是什么?可以修复吗?或者有更好的方法来做这件事吗?
答案 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
感谢您的帮助贡献者...如果没有您的帮助,我可能永远不会见到这一点。