-1

我正在尝试将数据从一个工作簿复制到另一个工作簿。在互联网上浏览了一些之后,这是我找到的代码,它会产生运行时错误 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 错误?可以修复吗?还是有更好的方法来做到这一点?

4

2 回答 2

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

于 2013-09-30T11:48:14.497 回答
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

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

于 2013-09-30T13:30:47.267 回答