2016-09-27 132 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

相关问题