2017-06-16 36 views
0

我的腳本從多張工作表中獲取數據並創建一個新的電子表格。我遇到的問題是如何追加到列的末尾。我嘗試這樣做:如何將數據追加到循環中的列

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

凡LASTROW被定義爲長,但我遇到了,當我繼續環繞來繞去的錯誤。以下是我迄今爲止:

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

只需選擇一個範圍遠高於任何使用xlUp當上排可能會在任何列將被填充(在這種情況下,A)。加1得到下一行:

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

LASTROW現在有一個數字,在片測試的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) 
+0

這工作,太感謝你了! – kdean693

相關問題