2014-11-25 7 views
0

У меня есть эта формула для генерации результата на листе4.excel VBA копировать только столбец A строки?

Однако мне нужны только согласованные критерии из столбца A листа 3, которые нужно скопировать на лист4, а не всю строку.

в этом случае, я хочу только 36238 и 63545, чтобы показать на Лист4 как выход

пытался пару изменений и не может работать, так что просто вставьте этот исходный код здесь увидеть, если кто-нибудь может точно указать модификацию.

вот мой полный код:

Private Sub CommandButton1_Click() 

    FilterCriteria1 

End Sub 

Sub FilterCriteria1() 

Dim LSearchRow As Long 
Dim shtSearch As Worksheet 
Dim shtCopyTo As Worksheet 
Dim rw As Range 

    LSearchRow = 2 'Start search in row 2 

    Set shtSearch = Sheets("Sheet3") 
    Set shtCopyTo = Sheets("Sheet4") 

On Error GoTo Err_Execute 

    Do While Len(shtSearch.Cells(LSearchRow, 1).Value) > 0 

     Set rw = shtSearch.Rows(LSearchRow) 

     If rw.Cells(4).Value = 0 And rw.Cells(7).Value <= -0.4 Then 

      MsgBox "bingo: " & rw.Cells(4).Value & "_" & rw.Cells(7).Value 

      rw.Copy shtCopyTo.Cells(Rows.count, 1).End(xlUp).Offset(1, 0) 

     End If 
     LSearchRow = LSearchRow + 1 
    Loop 

Err_Execute: 
    If Err.Number = 0 Then MsgBox "All have been copied!" Else _ 
    MsgBox Err.Description 


End Sub 

sheet3 and sheet4 output

ответ

0

Это выглядит ваша линия:

rw.Copy shtCopyTo.Cells(Rows.count, 1).End(xlUp).Offset(1, 0) 

Я полагаю, вы, вероятно, хотите:

Cells(rw, 1).copy shtCopyTo.Cells(Rows.count, 1).End(xlUp).Offset(1, 0) 
+0

да, определенно это проблема с этим ли ne :) Я попробовал ваш, но вышла ошибка, говоря, что Type mismatch –

+0

Возможно, замените переменную на этой строке на LSearchRow, а не rw –

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