2016-06-08 111 views
0

我已經查看了100個不同的解決方案來解決這個不斷出現的錯誤。它是一個只有數字「400」的彈出框和一個OK按鈕。將Excel錯誤400複製到其他工作表時

從被稱爲「前端」

我的代碼看起來像這樣的表IM複製:

Sub transfer() 

range("C2").Select 
Selection.Copy 
Worksheets("Raw Data").Select 
lMaxRows = Cells(Rows.Count, "A").End(xlUp).Row 
range("A" & lMaxRows + 1).Select 
Selection.Paste 

End Sub 

我只是想從一個表獲取移動數據的掛到下一個空行在另一張表中,但不斷收到此錯誤。任何幫助將不勝感激,因爲我是非常新的VBA

回答

1

如果您尚未完全限定您希望使用的工作簿/工作表,VBA將使用活動工作表。試試這樣:

Sub transfer() 
Dim sourceSheet as Worksheet : Set sourceSheet = ThisWorkbook.Worksheets("Front End") 
Dim destSheet as Worksheet : Set destSheet = ThisWorkbook.Worksheets("Raw Data") 
lMaxRows = destSheet.Cells(destSheet.Rows.Count, "A").End(xlUp).Row 

destSheet.Range("A" & lMaxRows + 1).Value = sourceSheet.range("C2").Value 

End Sub 

對於直接從一個地方複製值到另一個地方,你不需要使用複製,粘貼或選擇;您可以將其中一個的值設置爲另一個的值。

+0

行,所以我做了這一點,並使用F8單步執行代碼,一切都很好,很正常,直到它試圖這樣做最後一步「selection.paste」 我再次做了它,並在同一個地方,它給了我一個框說「運行時錯誤'1004':應用程序定義或對象定義的錯誤」 – Vbasic4now

+0

沒有'Selection.Paste '在上面的代碼中...我發佈得太早了,不得不將它編輯爲c糾正它,你可能已經得到了我的編輯提交 – Dave

+0

工作的信息!非常感謝! – Vbasic4now

0

變化Selection.PasteSelection.PasteSpecial Paste:=xlPasteValues似乎爲我工作:

Sub transfer() 

Range("C2").Select 
Selection.Copy 
Worksheets("Raw Data").Select 
lMaxRows = Cells(Rows.Count, "A").End(xlUp).Row 
Range("A" & lMaxRows + 1).Select 
'Selection.Paste 
Selection.PasteSpecial Paste:=xlPasteValues 

End Sub 

參考:Copying and pasting data using VBA code

相關問題