2017-02-16 7 views
2

Ich habe eine Tabelle mit einer Reihe von Daten alle in einer Spalte und ich bin auf der Suche nach bestimmten Daten. Ich versuche zu sehen, ob eine "Do-To-Loop" funktioniert.Schleife durch eine Spalte und ziehen Sie bestimmte Zellen

Ich versuche, die Schleife zu stoppen, wenn es "Verzeichnis *" als Teil der Zelle zum Beispiel Verzeichnis von G: \ Beispiel sehen. Bis dahin sollte die Schleife durch die Zellen schauen und, wenn sie nicht mit einer Nummer beginnt, diese Zelle in ein anderes Blatt/Spalte kopieren.

Sub Order() 

iRow = 1 

    Do Until Cells(iRow, 1) = "Directory*" 
    If Cells(iRow, 1) <> NumberatBeginning Then 
    Cells(iRow, 1).Copy _ 
    Destination:=Worksheets("Sheet2").Range("A1") 
    End If 


    iRow = iRow + 1 
    Loop 

End Sub 

Jede Hilfe wäre

Antwort

2

Sie haben es fast geschafft, die IsNumeric Funktion verwendet werden in Verbindung mit dem Mid (oder Left) Funktion das erste Zeichen in der Zelle Wert geschätzt werden kann und True überprüfen zurückkehren oder False, wenn das Zeichen numerisch ist. Versuchen Sie folgendes:

Sub Order() 

Dim iRow as Long, x as Long 

iRow = 1 
x = 1 

Do Until Cells(iRow, 1).Value Like "Directory*" 
    If Not IsNumeric(Mid(Cells(iRow, 1).Value, 1, 1)) Then 
     Worksheets("Sheet2").Cells(x, 1).Value = Cells(iRow, 1).Value 
     x = x + 1 
    End If 
iRow = iRow + 1 
Loop 

End Sub 

sollten Sie vermeiden, Kopieren und Einfügen, wie es Code verlangsamt, es ist immer besser, einfach den Wert der Zelle gesetzt.

Auch wenn Sie Schleifen und das Kopieren der Zellen mit nicht-numerischen ersten Zeichen und Einfügen sie in Sheet2 Code immer in die gleiche Zelle einfügen, Range("A1"), vorausgesetzt, Sie eine Liste der Werte wollen Sie benötigen um dies zu erhöhen, indem jedes Mal, wenn ein Wert nach Sheet2 kopiert wird, eine Zeile hinzugefügt wird.

+0

Sicher "Like" Directory * "' wäre falsch, wenn es eine Nummer am Anfang gab, also keine Notwendigkeit, dafür zu testen? – CallumDA

+0

Aber @OP möchte, dass die Schleife aufhört, wenn sie einen Wert findet, der mit "Directory *" beginnt, so wie ich das aus der Frage – Jordan

+0

verstanden habe. Danke, das hat super funktioniert –

Verwandte Themen