2016-04-13 16 views
0

Ich versuche, eine Liste von Verkäufern (Spalte A) und Kunden (Spalten B und C) in "Sheet1" zu durchlaufen.Wie wähle ich bestimmte Werte in einer Spalte (basierend auf einer anderen) aus, um sie mit einer Spalte in einem anderen Blatt zum Kopieren/Einfügen zu verbinden?

Ich möchte Spalte A von "Sheet1" durchlaufen, und basierend auf Verkäufer, beziehen Sie sich auf Spalten B & C (innerhalb der Reichweite des Verkäufers), und vergleichen Sie es mit Spalte A in "Sheet2". Wenn die Werte in den Spalten B oder C von "Sheet1" mit einem Wert in Spalte A von "Sheet2" übereinstimmen, möchte ich die gesamte Zeile kopieren und in ein neues "Sheet3" einfügen.

ich mit Schlaufen & conditionals gearbeitet habe, hat herausgefunden, wie basierend auf Zustand von einem anderen Blatt zu kopieren und einzufügen, sondern zwischen Spalten angeben B & C, basierend auf Spalte A von „Sheet1“ mit dem Link am kämpfen, und dann diese mit Spalte A von "Sheet2" übereinstimmen.

ich etwas in einem Blatt finden und kopieren und auf ein anderes Blatt einfügen, aber es ist nur ein kleiner Teil dessen, was ich tun möchte:

Sub CopyCode() 

Dim r As Long, endrow As Long, pasterowindex As Long 

endrow = Worksheets("sheet2").Range("A" & Rows.Count).End(xlUp).Row 
    pasterowindex = 1 

For r = 1 To endrow 'Loop through sheet1 and search for your criteria 

    'Central CODE: 
    If Worksheets("sheet2").Cells(r, Columns("A").Column).Value = "CLIENT" Then 
     'get all value(s) in range of column d (and c eventually) 
     ' and see if they match values in column A of Readership paste 
     'if they do match values in column A of readership paste, 
     ' then copy that matched row into a new sheet 
     ' (will be designated by salesperson) 

     'Copy the current row 
     Rows(r).Select 
     Selection.Copy 

     'Switch to the sheet where you want to paste it & paste 
     Sheets("Sheet3").Select 
     Rows(pasterowindex).Select 
     ActiveSheet.Paste 

     'Next time you find a match, it will be pasted in a new row 
     pasterowindex = pasterowindex + 1 

     'Switch back to your table & continue to search for your criteria 
     Sheets("sheet2").Select 
    End If 

Next r 

End Sub 
+0

Zeigen Sie, welchen Code Sie haben und es wird uns helfen, Ihnen die Hinweise zu geben, die Sie brauchen. Setzen Sie den Code in Ihren ursprünglichen Beitrag nicht die Kommentare oder als eine Antwort. –

+0

Ist die Zeile, die Sie in Blatt 3 auf Blatt 1 oder Blatt 2 kopieren möchten? – hoodaticus

+0

Die Zeile, die kopiert/eingefügt werden soll, befindet sich auf Blatt 2. Ich möchte sie auf ein drittes Blatt einfügen. – Wick

Antwort

0
for i = FirstRowA to LastRowA 'leaving you to figure out how to find these values 
    If cell(i) <> vbNullString Then 
      for h = FirstRowB to LastRowB 'again for you to figure out 
       If cell(h) = cell(i) Then 
        cell(h).copy 
        Sheet2.Cells(Sheet2.Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues 
        Sheet2.Cells(Sheet2.Rows.Count, 1).End(xlUp).Offset(0, 1).value = "Column b" 
       End If 
      Next h 

      for j = FirstRowC to LastRowC 'again you figure this out 
       If cell(j) = cell(i) Then 
        cell(j).copy 
        Sheet2.Cells(Sheet2.Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues 
        Sheet2.Cells(Sheet2.Rows.Count, 1).End(xlUp).Offset(0, 1).value = "column c" 
       end if 
      Next j 
     end if 
next i 

es könnte einige Syntax Probleme sein hier , aber ich habe dir im Prinzip die Schleife gegeben, nach der du gefragt hast. Dies bringt Sie einfach zu dem Punkt, wo Sie den Rest mit Leichtigkeit selbst herausfinden können.

+0

Vielen Dank, das ist ziemlich umfassend. Könntest du vielleicht einfach schnell erklären, was vbnullstring hier darstellt? Ich interpretierte es so, dass es (auf meine ursprüngliche Frage bezogen) der "Verkäufer" ist? – Wick

+0

vbNullString ist die integrierte Funktion/das Schlüsselwort, das VBA als NULL erkennt. Es ist effizienter, vbNullString anstelle von "" zu verwenden, um Leerzeichen zu referenzieren. Ich mache es mir einfach zur Gewohnheit, es immer wenn möglich zu verwenden, um zu leeren. Grundsätzlich sagt es, wenn Zelle (i), die aktuelle Zelle in der Schleife, ist nicht leer, dann Code ausführen –

+0

@Wick beantwortet dies Ihre Frage? Wenn ja, markiere eine Antwort oder frage nach mehr :) –