2017-07-24 180 views
0
Sub Macro11() 
' 
' Macro11 Macro 
' 

' 
Calculate 
Range("B46:CRZ46").Select 
Selection.Copy 
Sheets("Sheet1").Select 
Range("B:B").Select 
Cells(Range("B:B").End(xlUp).Row + 1).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ 
    False, Transpose:=False 
End Sub 

下面的宏做什麼,是刷新頁面(這將創建一個新的數據集),將數據從("B46:CRZ46")設置並粘貼在"Sheet1"。 現在,我想粘貼每次(我與.End(xlUp)試圖下井排不過我沒有正確使用它,它只是在同一行復制和粘貼。Excel中 - For循環

什麼我可以更改或添加了?代碼運作良好

回答

3

您可以直接而無需拷貝賦值/粘貼:

Dim rng As Range 

Calculate 

Set rng = Activesheet.Range("B46:CRZ46") 

Sheets("Sheet1").Cells(Rows.Count, "B").End(xlUp) _ 
     .Offset(1, 0).Resize(rng.rows.count, rng.columns.count).Value = rng.Value 
2

只需更換行:

Cells(Range("B:B").End(xlUp).Row + 1).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ 
    False, Transpose:=False 

有:

Range("B" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues 

說明:
Range("B:B").End(xlUp)將帶你到頂部。相反,這裏的方法應該是到底部Range("B" & Rows.Count)然後End(xlUp).Offset(1, 0)去到底部第一個非空白單元下面的1行。