我一直在寻找一种有效的方法来复制数据从一个电子表格到另一个,总是粘贴一行以下。有人帮我这个代码,但不幸的是它是不工作的列我需要。所以我需要复制数据从E2:P2的工作表“股息”和粘贴第一次在C11:N11,然后明天如果我再次运行应该粘贴在C12:N12和总是一行以下...当我运行代码,它粘贴的数据在C111:N111,如果我再次运行仍然粘贴在同一范围,所以不为我工作。我会感谢你的帮助。
Sub Copy_range()
' edit line below to change where data will be copied from
Worksheets("Dividends").Range("E2:P2").Copy ' copy the value
' select the first cell on the "Draft" sheet
Worksheets("Draft").Select
ActiveSheet.Range("C11").Select
Dim count As Integer
count = 1
'skip all used cells
Do While Not (ActiveCell.value = None)
ActiveCell.Offset(1, 0).Range("C11").Select
count = count + 1
Loop
Worksheets("Draft").Range("C11" & count & ":N11" & count).PasteSpecial ' paste the value
End Sub
4条答案
按热度按时间91zkwejq1#
使用ActiveCell和Offset通常会导致意外的结果,并使代码难以阅读。您可以让计数循环在没有所有这些操作的情况下工作,只需从C11开始遍历C列单元格并查找空单元格即可。
一种可能的方法是
ua4mk5z42#
我想说的是,你很可能只需要用一个自动填充到目标区域的
Vlookup Formula
就可以解决这个问题,但是下面的代码应该可以做到。vs3odd8k3#
所有方法都是正确,或者简单地使用:
yks3o0rb4#
使用以下