2017-03-27 42 views
1

我正在編譯多個工作表中的數據以放置在一個合併表單上。第一張紙很容易,因爲我可以粘貼整張紙,但之後它變得棘手,因爲我只需要從A5-H ###,因爲我不再需要標題。然後我需要將這些信息粘貼到前一個粘貼的底部。我得到範圍對象「_Global」失敗的'範圍(lastRow)。選擇'。問題是當我在調試器中查看它時,它會提供正確的行號。我究竟做錯了什麼?VBA在最後一行問題後粘貼數據

Sheets(1).Select 
Cells.Select 
Application.CutCopyMode = False 
Selection.Copy 
Sheets("Consolidation Sheet").Select 
Range("A1").Select 
ActiveSheet.Paste 
Sheets(2).Select 
Range("A5:A925").Select 
Range(Selection, Selection.End(xlToRight)).Select 
Application.CutCopyMode = False 
Selection.Copy 
Sheets("Consolidation Sheet").Select 
Range("A5").Select 
lastRow = ActiveSheet.Cells(Rows.Count, "E").End(xlUp).Row + 1 
Range(lastRow).Select 
ActiveSheet.Paste 

回答

1

你需要你的Range聲明採用以下格式(例如):

Range("A1").Select 

那麼既然你已經得到了行號(lastRow),你只需要添加列引用過:

Range("E" & lastRow).Select 

額外的信息

Avoid using Select通過直接引用該工作表/範圍要對付

Sheets(1).Cells.Copy Destination:=Sheets("Consolidation Sheet").Range("A1") 

With Sheets(2) 
    .Range(.Range("A5:A925"),.Range("A5:A925").End(xlToRight)).Copy 
End With 

With Sheets("Consolidation Sheet") 
    .Cells(.Rows.Count, "E").End(xlUp).Offset(1,0).PasteSpecial 
End With 
+1

太謝謝你了。我最初嘗試過Range(lastrow,「A」),顯然非常接近,但也遠離成功。 –