根据单元格输入复制和粘贴数据

时间:2016-09-27 20:00:09

标签: excel vba excel-vba

我正在尝试根据每行(列U)的特定列中的值将Rows从原始工作表(Ticket Sales)复制并粘贴到新工作表(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

1 个答案:

答案 0 :(得分: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