我通过循环方法开发了一个脚本,将数据从一个工作表复制到另一个工作表,然后刷新第一个字段。除了一个问题,该脚本运行良好。在第二张表中,它应该找到A列中的最后一个非空白单元格(即“x”)并且过去下一行的数据。问题是它将数据粘贴在'x + 11'行中。
我需要帮助确定发生这种情况的原因。
请注意,此处i = 11,因为第10行中的数据是标题,所需数据从第11行开始。
这是我制作的宏:
Option Explicit
Sub CopyPaste()
Dim i As Integer
Dim x As Long
Dim y As Long
Dim c As Range
i = 11
Do While Cells(i, 1).Value <> ""
'ActiveSheet.CopyPast
x = i
y = 0
For Each c In Worksheets("CDS").Range(Cells(x, 1), Cells(x, 11))
Worksheets("DataBank").Range("a10000").End(xlUp).Offset(x, y) = c
y = y + 1
x = 0
Next c
Application.CutCopyMode = False
i = i + 1
Loop
With Sheets("CDS")
Range("A11:K65").ClearContents
End With
End Sub
答案 0 :(得分:0)
这是因为您正在使用从11开始的偏移量,并且对于循环的每次迭代都会增加1。
变化:
Worksheets("DataBank").Range("a10000").End(xlUp).Offset(x, y) = c
要:
Worksheets("DataBank").Cells(Rows.Count,y+1).End(xlUp).Offset(1, 0) = c