如何将数据附加到循环中的列

时间:2017-06-16 20:33:53

标签: excel excel-vba vba

我的脚本从多个工作表中获取数据并创建一个新的电子表格。我遇到的问题是如何追加到列的末尾。我试过这个:

LastRow = Sheets("Test").Cells(Rows.Count, "A").End(xlUp).Row

其中LastRow定义为long,但是当我的循环继续运行时我遇到了错误。以下是我到目前为止的情况:

Sub autoFill()
    Dim wb As Workbook, ws As Worksheet
    Dim LastRow As Long
    Dim Unit As String
    Dim ddg As Variant, i As Variant

    Set wb = ActiveWorkbook
    Set ws = wb.Worksheets("Mapping")
    ddg = ws.Range("F4:F21").Value
    For Each i In ddg
        Unit = "Unit #" & i
        LastRow = Sheets("Test").Cells(Rows.Count, "A").End(xlUp).Row
        Sheets(Unit).Range("A2:A100").Copy Destination:=Sheets("Test").Range("A1" & LastRow)
        Sheets(Unit).Range("B2:B100").Copy Destination:=Sheets("Test").Range("B1" & LastRow)
    Next i
End Sub

1 个答案:

答案 0 :(得分:1)

使用xlUp时,只需选择一个范围WAY,无论最后一行是否填充任何列(本例中为A)。添加1以进入下一行:

LastRow = Sheets("Test").Range("A50000").End(xlUp).Row + 1

LAstRow现在的数字等于表单Test A中第一个未使用的行。

现在将该号码连接到" A"制作类似" A50"的范围。现在你正在做:

Sheets(Unit).Range("A2:A100").Copy Destination:=Sheets("Test").Range("A1" & LastRow)

将数字连接到" A1"所以你得到" A150"这是胡说八道......相反:

Sheets(Unit).Range("A2:A100").Copy Destination:=Sheets("Test").Range("A" & LastRow)