我的脚本从多个工作表中获取数据并创建一个新的电子表格。我遇到的问题是如何追加到列的末尾。我试过这个:
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
答案 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)