2016-09-27 137 views
0

我正在嘗試基於每個行(列U)的特定列中的值將行從原始圖紙(票據銷售)複製並粘貼到新圖紙(Rachel)。我希望Rachel的所有銷售額都可以複製到另一張紙上。第二張紙的格式沒有變化。這是我到目前爲止有:根據單元格輸入複製並粘貼數據

Sub CopyRachelDataPaste()  
    Dim i, LastRow 

    'Get Last Row 
    LasRow = Sheets("Ticket Sales").Range("A" & Rows.Count).End(xlUp).Row 
    'Clear Contents 
    Sheets("Rachel").Range("A2:AB3000").ClearContents 

    For i = 2 To LastRow 
     If Sheets("Ticket Sales").Cells(i, "U").Value = "Rachel" Then 
      Sheets("Ticket Sales").Cells(i, "U").EntireRow.Copy Destination:=Sheets("Rachel").Range("A" & Rows.Count).End(xlUp).Offset(1)  
     End If 
    Next i 
End Sub 
+0

你有一個錯字:'LasRow =表(「票務銷售「)。 ...'應該是'LastRow =表格(「門票銷售」)。 ...'。 (使用選項顯式會爲你檢測這些。) –

回答

0

必須正確在所有範圍定義

類似的參考表如下:

Option Explicit 

Sub CopyRachelDataPaste() 
    Dim i As Long, lastRow As Long 

    Worksheets("Rachel").Range("A2:AB3000").ClearContents 'Clear Contents 
    With Worksheets("Ticket Sales") '<--| reference ticket worksheet 
     lastRow = .Range("A" & .Rows.Count).End(xlUp).Row '<--| get referenced worksheet column "A" last non empty row  
     For i = 2 To lastRow 
      If .Cells(i, "U").Value = "Rachel" Then .Cells(i, "U").EntireRow.Copy Destination:=Worksheets("Rachel").Range("A" & Worksheets("Rachel").Rows.Count).End(xlUp).Offset(1) 
     Next i 
    End With 
End Sub 
+0

非常感謝!很棒。此外,如果我想複製並只過去一定數量的列而不是EntireRow?例如第i行的列A至V – Jexcel

+0

歡迎您。自從我完成你的_original_問題後,請將答案標記爲已接受。謝謝。然後,根據此網站規則,您必須爲新問題發佈新帖子。 – user3598756

相關問題