2015-07-16 2 views
1

Мне нужно скопировать всю строку из листа и вставить в другой лист с тем же заголовком, что значение конкретного столбца равно 89581. Но мои VBA бросают 424. Пожалуйста, помогите.Excel Скопируйте целую строку с листа на другой лист на основе значения одного столбца

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 
+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 

Предполагаемые данные1 - это лист с данными, а Data2 - копия.

+0

Он меня выбрал «диапазон методов vba объекта _workheet failed error» в строке номер 8 – user3920674

+0

У вас есть лист под названием Data1 (без пробела) –

Смежные вопросы