-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

これはExcel 2007で行われていることを忘れていました...

1004 エラーの背後にある理由は、xlsx ファイルではなく .xls ファイルを探していたためです。

したがって、コードは次のようになります

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

使用したばかりのファイルを閉じるには

ActiveWorkbook.Close

または、シッダールスが使用するように言ったように:

wbSource.close savechanges:= false

寄稿者の皆様のご協力に感謝いたします。皆様のご協力がなければ、おそらくこれを見たことはなかったでしょう。

于 2013-09-30T13:30:47.267 に答える
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 に答える