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)
从底部到第一个非空白单元格的下一行。