2017-02-17 4 views
0

Ich habe eine Arbeitsmappe, die 3 Blätter hat. Die Blätter 1 und 2 haben 2 Informationsspalten. Spalte A ist eine eindeutige Kennung und Spalte B ist ein Währungswert, der erneut auftreten kann.Identifizieren von doppelten Werten und Kopieren in andere Zellen mit For Loops in VBA Excel

Alle Informationen in Blatt 1 werden in Blatt 2 wiederholt, obwohl Blatt 2 zusätzliche Informationen enthält.

Ich muß Schleife durch die eindeutige Kennung (Spalte A) in Blatt 2, vergleichen sie mit den Informationen in Blatt 1, und kopieren die eindeutige Information von Blatt 2 auf einen Bereich in Blatt 3.

Im einzigen Ich lerne im Moment die Grundlagen von VBA, also könnte es einen besseren Weg geben, aber ich hoffe, dass ich den Code auf andere Arbeitsmappen erweitern kann.

Danke für die Hilfe.

 Sub Split_818s() 
     Dim Ref As Long 
     Dim Ref1 As Long 
     Dim Amount As Long 

     For Ref = Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1 
      For Ref1 = Range("B6") To Range("B100") 
     If (Worksheets("Sheet2").Range(Ref).Value <> Worksheets("Sheet1").Range(Ref).Value) Then 
      Worksheets(“Sheet3”).Range(Ref1).Value = Worksheets("Sheet2).Range(Ref).Value 
      End If 
      Next Ref1 
     Next Ref 

     End Sub 
+0

In welcher Weise sind die Daten auf Sheet2 einzigartig von Sheet1 werden Sie die IDs in der Spalte A. Vergleich der Code erscheint Werte in Spalte B auf Sheet1 mit den Werten in der Spalte A in Sheet1 zu vergleichen. – Gordon

+0

@Gordon Die Informationen in Spalte A in den beiden Blättern 1 und 2 sind eine eindeutige Benutzer-ID. Es ist ein Bericht, der zweimal täglich abgerufen wird. Der zweite Bericht enthält die gleichen Informationen wie die erste, aber zusätzliche Information, die während des Tages erhalten wird. Ich möchte, dass die Details von Blatt 2 Spalte A zu Blatt 3 Spalte B kopiert werden – RappaportXXX

Antwort

0

Ich habe es verschiedene Syntaxen setzen in verschiedenen Ansätze zu zeigen:

Sub Split_818s() 
Dim wS1 As Worksheet 
Dim wS2 As Worksheet 
Dim wS3 As Worksheet 
Dim Ref As Long 
Dim Ref1 As Long 
Dim Amount As Long 

Set wS1 = ThisWorkbook.Sheets("Sheet1") 
Set wS2 = ThisWorkbook.Sheets("Sheet2") 
Set wS3 = ThisWorkbook.Sheets("Sheet3") 

wS3.Cells.Clear 

For Ref = wS2.Range("A" & wS2.Rows.Count).End(xlUp).Row To 2 Step -1 
    For Ref1 = wS1.Range("B6").Row To wS1.Range("B100").Row 
     If wS2.Range("A" & Ref).Value <> wS1.Cells(Ref1, 1).Value Then 
      With wS3 
       .Cells(.Range("A" & .Rows.Count).End(xlUp).Row + 1, "A").Value = _ 
         wS2.Range("A" & Ref).Value 
      End With 'wS3 
     End If 
    Next Ref1 
Next Ref 

End Sub 
0

Woohoo Arrays !!!!! Dies ist ein ziemlich einfaches Stück Code. Dies wird Ihnen viel beibringen, sobald Sie anfangen, den Code zu brechen.

Private Sub this() 
    Dim bringOver As Variant 
    Dim bringOver2 As Variant 
    Dim j As Long 
    Dim i As Long 
    i = 0 
    j = 0 
    bringOver = ThisWorkbook.Sheets("Sheet1").UsedRange 
    bringOver2 = ThisWorkbook.Sheets("Sheet2").UsedRange 
    For i = LBound(bringOver2, 1) To UBound(bringOver2, 1) 
     If bringOver2(i, 1) = bringOver(i, 1) Then 
      Debug.Print ; bringOver2(i, 1) 
      ThisWorkbook.Sheets("Sheet3").Cells(Sheet3.Rows.Count, 1).End(xlUp).Offset(1, 0).Value = bringOver2(i, 3) 
     End If 
    Next i 
End Sub 
Verwandte Themen