将数据从一个工作表复制到另一个工作表的问题

时间:2014-10-10 12:11:41

标签: excel vba excel-vba copy-paste offset

我通过循环方法开发了一个脚本,将数据从一个工作表复制到另一个工作表,然后刷新第一个字段。除了一个问题,该脚本运行良好。在第二张表中,它应该找到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

1 个答案:

答案 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