2016-02-08 78 views
1

我在嘗試複製和粘貼某些列(及其數據)時遇到此問題的標題中指定的錯誤,到一個新的工作簿。 下面用來工作,直到那一刻,我加在我的工作簿中的新的數據透視表新表,我不知道原因的代碼:運行時錯誤'1004':添加新數據透視表時,Range類的複製方法失敗Excel 2013

Sub ExtractData_2() 

    Workbooks.Add 
    ActiveWorkbook.SaveAs ThisWorkbook.Path & "\extract_Fcst" & ".csv", 6 
    ThisWorkbook.Worksheets("Forecast Enrichment").Activate 

    ThisWorkbook.Sheets("Forecast Enrichment").Range("E:S").Copy Destination:=Workbooks("extract_Fcst.csv").Sheets(1).Range("A:O") 

    Workbooks("extract_Fcst.csv").Sheets(1).Range("A:O").EntireColumn.AutoFit 

End Sub 

沒有任何人有任何想法,如何解決那個問題?我已經嘗試了很多不同的解決方案在谷歌中找到,但它的任何作品!

+2

嘗試從'.Copy'語句中省略'Destination:= ...',讓我們看看'Copy'是否自己失敗。 –

+0

你是說你的'Forecast Enrichment'表中存在一個關鍵點,而在它之前沒有? –

+1

嘗試David提出的建議,但我也建議這樣做:「Dim myWB As Workbook Set myWB = Workbooks.Add()myWB.SaveAs ........」另外,Activate語句是不必要的。 – OpiesDad

回答

1

使用對象變量並分配得當,那麼分手的複製/目的地,看看是否有誤上覆制或粘貼提高,具體如下:

Sub ExtractData_2() 

    Dim csvWorkbook as Workbook 

    Set csvWorkbook = Workbooks.Add 
    csvWorkbook.SaveAs ThisWorkbook.Path & "\extract_Fcst" & ".csv", 6 

    ' Unnecessary to "Activate" the sheet...", so you can delete this: 
    ' ThisWorkbook.Worksheets("Forecast Enrichment").Activate 

    'Try using copy/paste as separate statements to see where the failure may occur 
    ThisWorkbook.Sheets("Forecast Enrichment").Range("E:S").Copy 
    csvWorkbook.Sheets(1).Range("A1").Select 
    csvWorkbook.Sheets(1).Paste 

    csvWorkbook.Sheets(1).Range("A:O").EntireColumn.AutoFit 

End Sub 

如果仍然引發錯誤,讓我知道它發生了哪一行。

+0

嗨;我試過你的代碼,但它不接受「粘貼」。相反,我嘗試使用「PasteSpecial」,但我得到一個新的錯誤「粘貼特殊方法的範圍類失敗」。但令人驚訝的是,它創建了新的.csv與所需的副本。 – Aida

+0

使用'Paste'方法嘗試修改後的答案。 –

+0

它仍然無法使用!它給了我關於「粘貼方法」相同的錯誤 – Aida

相關問題