2013-02-11 109 views
0

我有此代碼(工作)。將第n行復制並粘貼到其他表格(mod)

Sub Copy_Ten() 
Dim X As Long, LastRow As Long 
Dim CopyRange As Range 
LastRow = Cells(Cells.Rows.Count, "A").End(xlUp).Row 
For X = 1 To LastRow Step 4 
    If CopyRange Is Nothing Then 
     Set CopyRange = Rows(X).EntireRow 
    Else 
     Set CopyRange = Union(CopyRange, Rows(X).EntireRow) 
    End If 
Next 
If Not CopyRange Is Nothing Then 
CopyRange.Copy Destination:=Sheets("Sheet2").Range("A1") 
End If 
End Sub 

在工作表2上始終從A1開始。我希望它能夠繼續尋找下一個空間。

我的代碼是Range("A1").End(xldown).Select但是我不知道該把它放在哪裏。

因此,最終表2不會在第一次從A1開始......因爲會有越來越多的列表。

回答

1

您可以使用代碼,但它包裝在一個與功能,像這樣

With Sheets("Sheet2") 
    lastRow2 = .Cells(.Rows.Count, "A").End(xlUp).Row 
End With 

然後改變

CopyRange.Copy Destination:=Sheets("Sheet2").Range("A1") 

CopyRange.Copy Destination:=Sheets("Sheet2").Range("A" & lastRow2) 

爲了使這更清楚一點嘗試以下

Sub Copy_Ten() 
    Dim X As Long, LastRow As Long, PasteRow As Long 
    Dim CopyRange As Range 
    LastRow = Cells(Cells.Rows.Count, "A").End(xlUp).Row 
    With Sheets("Sheet2") 
     PasteRow = .Cells(.Rows.Count, "A").End(xlUp).Row 
    End With 
    For X = 1 To LastRow Step 4 
     If CopyRange Is Nothing Then 
      Set CopyRange = Rows(X).EntireRow 
     Else 
      Set CopyRange = Union(CopyRange, Rows(X).EntireRow) 
     End If 
    Next 
    If Not CopyRange Is Nothing Then 
     CopyRange.Copy Destination:=Sheets("Sheet2").Range("A" & PasteRow) 
    End If 
End Sub 
+0

所以它應該看起來像這樣。 Dim Copy As Long,LastRow As Long Dim CopyRange As Range With Sheets(「Sheet2」) lastRow2 = .Cells(.Rows.Count,「A」)。End (xlUp).Row 完隨着 對於x = 1至LASTROW步驟4 如果copyRange是是Nothing然後 集copyRange是=行(X).EntireRow 否則 集copyRange是=聯盟(copyRange是,行(X).EntireRow) 結束如果 接着 如果不copyRange是是Nothing然後 CopyRange.Copy目的地:=表( 「Sheet 2中」)範圍( 「A」 &lastRow2) 結束如果結束 子。 ' – Arthor 2013-02-11 01:27:32

+1

我已更新我的答案以提供完整的代碼。 – Rick 2013-02-11 01:41:18

+0

加了一個genuies,一個genuies – Arthor 2013-02-11 01:42:38

相關問題