2015-02-12 4 views
0

Как добавить строки данных из одного листа в другой после сравнения его друг с другом для существующих записей? Я пробовал это делать, но единственная проблема заключается в том, что в нее добавляются повторяющиеся записи.Сравнение и добавление данных из одного листа в другой в VBA Excel

For Each Cell1 In Worksheets(1).Range("A1", Worksheets(1).Range("A1").End(xlDown)) 
 
     
 
     For Each Cell3 In Worksheets(3).Range("A1", Worksheets(3).Range("A1").End(xlDown)) 
 
    
 
      If Not Cell1 = Cell3 Then 
 
       Dim LastRow3 As Long 
 
       LastRow3 = Worksheets(3).Range("A1").SpecialCells(xlCellTypeLastCell).Row + 1 
 
       Worksheets(3).Range("A1:C1").Rows(LastRow3).Value = Worksheets(1).Range("A1:C1").Rows(Cell1.Row).Value 
 
       
 
      Else 
 
       Exit For 
 
      End If 
 
    
 
     Next Cell3 
 

 
Next Cell1

ответ

0

Использование Find() проще в управлении, чем с помощью вложенного цикла:

Sub Test() 

    Dim c As Range, f As Range 
    Dim ws1, ws3 

    Set ws1 = Worksheets(1) 
    Set ws3 = Worksheets(3) 

    For Each c In ws1.Range(ws1.Range("A1"), ws1.Cells(Rows.Count, 1).End(xlUp)).Cells 

     Set f = ws3.Range(ws3.Range("A1"), _ 
          ws3.Cells(Rows.Count, 1).End(xlUp)).Find(_ 
             What:=c.Value, lookat:=xlWhole) 

     If f Is Nothing Then 
      ws3.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(1, 3).Value = _ 
                 c.Resize(1, 3).Value 
     End If 

    Next c 

End Sub 
+0

Спасибо !!! Worked Perfect – dannydsouza0908

+0

Есть ли какой-нибудь сайт или книга, на которую я могу ссылаться для работы над VBA Excel ??? Я только что начал. – dannydsouza0908

+0

Мне нравятся книги «Power Progamming» от Джона Уокенбаха –

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

  • Нет связанных вопросов^_^