Excel根据一个列值将整个行从工作表复制到另一个工作表

时间:2015-07-16 01:10:08

标签: excel vba excel-vba

我需要从工作表中复制整行并粘贴到具有相同标题的另一个工作表中,考虑特定列值等于89581.但是我的VBA抛出了424错误。请帮助。

Sub CopyData()
Dim c As Range
Dim Row As Long
Dim sheetUse As Worksheet
Dim sheetCopy As Worksheet
Set sheetUse = Sheets("Data1").Select
Set sheetCopy = Sheets("Data2").Select
Row = 3 'Assume same  header in sheet2 as in sheet1
For Each c In sheetUse.Range("O3",  Sheet1.Range("O65536").End(xlUp))       
    If c = 89581 Then

         'copy this row to sheet2
        Row = Row + 1
        c.EntireRow.Copy sheetCopy.Cells(Row, 1)

    End If

Next c

Application.CutCopyMode = False
End Sub

1 个答案:

答案 0 :(得分:0)

在这里,建立一个复制参考,然后一次复制和粘贴。

Sub CopyToOtherSheet()
Dim sheetUse As Worksheet, sheetCopy As Worksheet, i As Long, CopyRange As String
Set sheetUse = Sheets("Data1")
Set sheetCopy = Sheets("Data2")
For i = 3 To sheetUse.Cells(Rows.Count, 15).End(xlUp).Row
    If sheetUse.Cells(i, 15) = 89581 Then CopyRange = CopyRange & "," & i & ":" & i
Next i
sheetUse.Range(Right(CopyRange, Len(CopyRange) - 1)).Copy
sheetCopy.Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial xlPasteAll 'Change to values or formats or whatever you want
Application.CutCopyMode = False
End Sub

假设Data1是包含数据的工作表,Data2是要复制到的工作表。