Excel – For Loop

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 

下面的macros所做的是刷新页面(创build一个新的数据集),从("B46:CRZ46")复制数据集并将其粘贴到"Sheet1" 。 现在,我想要粘贴每一次(我试过.End(xlUp)但我没有正确使用它,它只是复制和粘贴在同一行上。

我可以更改或添加什么代码来运行良好?

您可以直接分配值,而无需复制/粘贴:

 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 

只需更换该行:

 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) ,然后End(xlUp).Offset(1, 0)从底部到第一个非空白单元格的下一行。