Ich habe eine for-Schleife erstellt, um Werte in Zellen in Sheet1 zu finden und sie in Sheet2 zu kopieren/einzufügen. Problem ist, wenn der Wert nicht da ist, wird es nur zurück in die Loop-Liste gehen. Zum Beispiel, sobald ich zu "Anna" komme, weil sie in Sheet1 nicht existiert, geht es die ganze Liste zurück bis zu Jerry. Ich möchte, dass es von Jerry zu John geht. Wenn Anna, existiert nicht, dann überspringen sie.For Schleife Überspringen von Werten
Sheets("Sheet1").Select
For b = 1 To 35
If Cells(1, b) = "Jerry" Then
Columns(b).Select
Selection.Copy
Sheets("Sheet2").Select
Columns("A:A").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Sheets("Sheet1").Select
For c = 1 To 35
If Cells(1, c) = "Bob" Then
Columns(c).Select
Selection.Copy
Sheets("Sheet2").Select
Columns("B:B").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Sheets("Sheet1").Select
For d = 1 To 35
If Cells(1, d) = "Larry" Then
Columns(d).Select
Selection.Copy
Sheets("Sheet2").Select
Columns("C:C").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Sheets("Sheet1").Select
For e = 1 To 35
If Cells(1, e) = "Steve" Then
Columns(e).Select
Selection.Copy
Sheets("Sheet2").Select
Columns("E:E").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Sheets("Sheet1").Select
For f = 1 To 35
If Cells(1, f) = "Wilson" Then
Columns(f).Select
Selection.Copy
Sheets("Sheet2").Select
Columns("I:I").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Sheets("Sheet1").Select
For g = 1 To 35
If Cells(1, g) = "Anna" Then
Columns(g).Select
Selection.Copy
Sheets("Sheet2").Select
Columns("P:P").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Sheets("Sheet1").Select
For h = 1 To 35
If Cells(1, h) = "Kevin" Then
Columns(h).Select
Selection.Copy
Sheets("Sheet2").Select
Columns("Q:Q").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Sheets("Sheet1").Select
For i = 1 To 35
If Cells(1, i) = "Gary" Then
Columns(i).Select
Selection.Copy
Sheets("Sheet2").Select
Columns("X:X").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Sheets("Sheet1").Select
For j = 1 To 35
If Cells(1, j) = "John" Then
Columns(j).Select
Selection.Copy
Sheets("Sheet2").Select
Columns("R:R").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Sheets("Sheet1").Select
End If
Next j
End If
Next i
End If
Next h
End If
Next g
End If
Next f
End If
Next e
End If
Next d
End If
Next c
End If
Next b
Wie Sie wissen, ob es Elemente Skipping ist? Mit den Loops von 35 ineinander verschachtelten 9 Levels sind das 78.815.638.671.875 Iterationen. Es ist wahrscheinlich nur nicht abgeschlossen (ich weiß, weil wir den Hitzetod des Universums noch nicht erfahren haben). – Comintern
@Der Code ist ein Chaos, aber die verschachtelten Schleifen sind bedingt, daher ist es möglich, dass der gesamte Code in angemessener Zeit ausgeführt wird. Das heißt, es gibt natürlich sicherlich eine weniger komplizierte Art und Weise zu tun, was OP versucht zu tun (obwohl nur das, was das ist, nicht sehr klar ist). –
Im angegebenen Code ist das _search_ für die _values_ auf den Bereich 'A1: AI1' beschränkt. Das ist deine Absicht? – EEM