2013-12-13 39 views
1

我試圖編寫一個非常基本的宏,它從一張表中複製值並將它們粘貼到另一張表中。該宏最初工作,然後開始返回一個Runtime error '1004' Application-defined or object defined error消息。該代碼是:錯誤信息'運行時錯誤'1004'運行復制/粘貼宏時應用程序定義或對象定義錯誤

Sub CopyPaste() 
' 
' CopyPaste Macro 

    Sheets("Data Input").Range("C2:C11").Copy 
    Sheets("Results").Range("A8").End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=True 
    Application.CutCopyMode = False 
End Sub 
+0

您是否嘗試過與離開了'.END(xlDown).Offset(1,0)'? – pnuts

+0

[Run-time error:1004 object'\ _Worksheet'範圍失敗]的可能重複(http://stackoverflow.com/questions/16927378/run-time-error-1004-range-of-object-worksheet-failed )和http://stackoverflow.com/q/17980854/62576 –

+0

嗨,謝謝,我試着把'.End(xlDown).Offset(1,0)'留出來,但是那部分代碼應該確保數據被粘貼到下一個空行,而不是直接粘貼到舊數據的頂部,因此擺脫它並不是最終的解決方案。它在我刪除它時起作用,然後在我將它放回代碼中時工作,然後再次停止工作。非常令人沮喪! – user3097891

回答

1

而不是從頂端開始行會下到谷底,更好地做到這一點倒過來的 - 開始在紙張的底部,並上去,直到你找到的第一個數據行。否則,如果您只有一個或零個數據行(然後返回最後一個表單行),則會遇到問題 - 或者如果數據中存在空白,您將獲得第一個空位。

因此,試試這個代碼,而不是:

Sub CopyPaste() 
    Sheets("Data Input").Range("C2:C11").Copy 
    Sheets("Results").Cells(Sheets("Results").Rows.count,1).End(xlUp) _ 
     .Offset(1).PasteSpecial Paste:=xlPasteValues Transpose:=True 
    Application.CutCopyMode = False 
End Sub 
相關問題