2017-11-21 4 views
-3

Ich bin sehr neu in diesem VBA-Codierung. Jemand kann mir dabei helfen. Ich habe einige Daten in Sheet1 und möchte die Daten mit den folgenden Bedingungen nach Sheet2 kopieren. Wenn "K" = "Ja", dann sollten L, M, N, O, P in der nächsten Reihe sein. Auf die gleiche Weise, wenn "Q" = "Ja", dann sollten R, S, T, U, V in der nächsten Reihe sein. Hier ist die Beispieldaten enter image description hereHolen Sie die Daten von einem Blatt zu einem anderen Blatt durch Anwendung mehrerer Bedingungen

Ausgang erwartet: enter image description here

+0

Willkommen bei SO, ich konnte keine klare Frage finden, können Sie Ihren Beitrag ändern und definieren Frage zu lösen? Bitte lesen Sie> [Wie man fragt] (https://stackoverflow.com/help/how- –

Antwort

0

Der folgende Code könnte tun, was Sie fragen:

Sub MyMacro() 
LastRow = Sheet1.Cells(Sheet1.Rows.Count, "A").End(xlUp).Row 
For i = 2 To LastRow 
    emptyrow = Sheet2.Cells(Sheet2.Rows.Count, "A").End(xlUp).Row + 1 
    Sheet2.Cells(emptyrow, 1).Value = Sheet1.Cells(i, 1).Value 
    Sheet2.Cells(emptyrow, 2).Value = Sheet1.Cells(i, 2).Value 
    Sheet2.Cells(emptyrow, 3).Value = Sheet1.Cells(i, 3).Value 
    Sheet2.Cells(emptyrow, 4).Value = Sheet1.Cells(i, 4).Value 
    Sheet2.Cells(emptyrow, 5).Value = Sheet1.Cells(i, 5).Value 
    Sheet2.Cells(emptyrow, 6).Value = Sheet1.Cells(i, 6).Value 
    Sheet2.Cells(emptyrow, 7).Value = Sheet1.Cells(i, 7).Value 
    Sheet2.Cells(emptyrow, 8).Value = Sheet1.Cells(i, 8).Value 
    Sheet2.Cells(emptyrow, 9).Value = Sheet1.Cells(i, 9).Value 
    Sheet2.Cells(emptyrow, 10).Value = Sheet1.Cells(i, 10).Value 
Check = UCase(Sheet1.Cells(i, 11).Value) 
    If Check = "YES" Then 
     emptyrow = Sheet2.Cells(Sheet2.Rows.Count, "A").End(xlUp).Row + 1 
     Sheet2.Cells(emptyrow, 1).Value = Sheet1.Cells(i, 1).Value 
     Sheet2.Cells(emptyrow, 2).Value = Sheet1.Cells(i, 2).Value 
     Sheet2.Cells(emptyrow, 3).Value = Sheet1.Cells(i, 3).Value 
     Sheet2.Cells(emptyrow, 4).Value = Sheet1.Cells(i, 4).Value 
     Sheet2.Cells(emptyrow, 5).Value = Sheet1.Cells(i, 5).Value 
     Sheet2.Cells(emptyrow, 6).Value = Sheet1.Cells(i, 12).Value 
     Sheet2.Cells(emptyrow, 7).Value = Sheet1.Cells(i, 13).Value 
     Sheet2.Cells(emptyrow, 8).Value = Sheet1.Cells(i, 14).Value 
     Sheet2.Cells(emptyrow, 9).Value = Sheet1.Cells(i, 15).Value 
     Sheet2.Cells(emptyrow, 10).Value = Sheet1.Cells(i, 16).Value 
    End If 
Check = UCase(Sheet1.Cells(i, 17).Value) 
    If Check = "YES" Then 
     emptyrow = Sheet2.Cells(Sheet2.Rows.Count, "A").End(xlUp).Row + 1 
     Sheet2.Cells(emptyrow, 1).Value = Sheet1.Cells(i, 1).Value 
     Sheet2.Cells(emptyrow, 2).Value = Sheet1.Cells(i, 2).Value 
     Sheet2.Cells(emptyrow, 3).Value = Sheet1.Cells(i, 3).Value 
     Sheet2.Cells(emptyrow, 4).Value = Sheet1.Cells(i, 4).Value 
     Sheet2.Cells(emptyrow, 5).Value = Sheet1.Cells(i, 5).Value 
     Sheet2.Cells(emptyrow, 6).Value = Sheet1.Cells(i, 18).Value 
     Sheet2.Cells(emptyrow, 7).Value = Sheet1.Cells(i, 19).Value 
     Sheet2.Cells(emptyrow, 8).Value = Sheet1.Cells(i, 20).Value 
     Sheet2.Cells(emptyrow, 9).Value = Sheet1.Cells(i, 21).Value 
     Sheet2.Cells(emptyrow, 10).Value = Sheet1.Cells(i, 22).Value 
    End If 
Next i 
End Sub 

Die Ausgabe auf Sheet2 wie unten sein würde:

Team Team Team Member  Team Member 
Jame Rich 11  One of My Great Teacher 
Tar  Scott 98  Rockstar Rockstar 
Ash  Mit  94  good team Great! 
Kate Wilde 1  One of my One of my 
+0

Als Sie !!! Ihr Code hat mir sehr geholfen und ich habe noch eine Frage. Ich will A zu J Daten in der 1. Reihe und wenn "K" = "Ja", dann A, B, C, D, E, L, M, N, O, P in der zweiten Zeile und wenn "Q" = "Ja", dann A, B, C, D, E, R, S, T, U, V in der 3. Zeile Gibt es eine Möglichkeit, die Daten auf diese Weise zu erhalten? – ram

+0

@ram bitte sehen Sie sich den aktualisierten Code an, ich denke, das wird tun, was Sie wollen tu ... :) – Xabier

+0

Hallo !!! Wenn ich den aktualisierten Code verwende, erhalte ich einen Fehler als "Laufzeitfehler '424': Objekt benötigt" .... Fehler wird in "LastRow = Blatt.Zellen (Blatt.Rows.Zahl," A ") angezeigt. End (xlUp) .Row "diese Zeile können Sie mir bitte dabei helfen. Vielen Dank im Voraus – ram

Verwandte Themen