2013-09-30 42 views
0

我試圖將數據從一個工作簿複製到另一個工作表。在互聯網上的一些瀏覽之後,這是我發現的代碼和它產生一個運行時錯誤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

目標工作簿是否已經打開? – dendarii

+0

不,已關閉。 – ASM2701

+0

現在你錯過了'.Open'。請參閱我的回答中的評論 –

回答

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 

Ø R作爲亞洲時報Siddharth義正詞嚴說要用:

wbSource.close savechanges:= false 

感謝您的幫助貢獻者......我可能會從未見過這種沒有你們的幫助。

0

源中的行數與目標中的行數不匹配。

試試這個

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

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

像你這樣的情況下,Advanced Team Management.xlsm沒有爲wbSource關閉同時指定

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

的路徑。

+0

我仍然收到1004錯誤。 – ASM2701

+1

哪一行是你得到的錯誤? –

+0

它不會在它試圖運行時立即停止在某個特定點上,而會導致1004錯誤。 – ASM2701

相關問題