2017-07-29 76 views
2

我正在研究代碼,我想要做的就是複製一張紙上的數據並將其粘貼到另一張具有表格設置的紙張中。如何複製另一張工作表中的行並將其粘貼到具有表格的工作表中?

我的代碼正在執行我想要的操作,但是表不會調整大小以包含所有被複制的行,只有複製數據的第一行進入表中。其餘的格式不在表格中。

enter image description here

這是它的樣子後,我運行代碼

Sub LastRowInOneColumn() 
    Dim LastRow As Longenter image description here 
    Dim i As Long, j As Long 

    'Find the last used row in a Column 
    With Worksheets("First Page") 
    LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row 
    End With 

    'first row number where you need to paste values in Sheet1' 
    With Worksheets("Report") 
    j = .Cells(.Rows.Count, "A").End(xlUp).Row '+ 1 
    End With 

    For i = 1 To LastRow 
    With Worksheets("First Page") 
     'If .Cells(i, 1).Value = "X" Then 
     .Rows(i).Copy Destination:=Worksheets("Report").range("A" & j) 
     j = j + 1 
     'End If 
    End With 
    Next i 
End Sub 
+0

這是鏈接到它的樣子運行的代碼之後:https://1drv.ms/i/s!AmHyJPlVM3nVgelP63-u8zHPS-wPow 這是我希望它看起來像: https://1drv.ms/i/s!AmHyJPlVM3nVgelQsGfmDhO-eCtNCQ – cookiemonster

+0

您可以將表格格式化爲覆蓋表格的整個深度,而不僅僅是將數據導入之前的第一行 – Bug

+0

我真的很感謝您們的幫助。它正在工作。再次感謝你。 – cookiemonster

回答

0

通常情況下,插入表格的末尾下面將使其自動增長,但不能粘貼超過一定範圍時,表中的列數。有兩種處理方法:

1-將複製的範圍限制爲表中的列數;即

.Rows(i).Resize(,4).Copy Destination:=Worksheets("Report").range("A" & j) 
'  ^^^^^^^^^^^ 

2-使用方法ListObject.Resize明確調整表的大小;即

With Sheet1.ListObjects(1) 
    .Resize .Range.Resize(.Range.Rows.count + 1) 
End With 
+1

選項1完美工作。非常感謝 – cookiemonster

相關問題