2016-05-13 12 views
2

Ich habe unter VBA-Code, der mit VBA funktioniert "für jede Schleife". Das Problem ist, dass ich den folgenden Code in einem anderen Programm verwendet habe, aber in dem Zustand ist die gleiche, nur ich möchte die Schleife-Sache darin entfernen.Für jede Schleife Ausgabe

Der Code sollte ausgeführt und gestoppt werden, nachdem die Aufgabe einmal abgeschlossen wurde. Kurz gesagt möchte ich die Schleife entfernen und es so machen, wo Code ohne Schleife läuft. Ersetzen

Set olNs = outlookApp.GetNamespace("MAPI") 
Set Fldr = olNs.GetDefaultFolder(olFolderInbox) 
Set myTasks = Fldr.Items 

For Each olMail In myTasks 
    If (InStr(1, olMail.Subject, ws.Range("E" & FinalRow), vbTextCompare) > 0) Then 
     olMail.Display 
    End If 
Next olMail 
+0

Verwenden 'Beenden For' kurz vor' Weiter olMail' wenn Sie torun es wollen nur einmal. Wenn Sie beenden möchten, nachdem die Bedingung 'if' erfüllt ist, platzieren Sie sie vor 'End if'. – newguy

Antwort

1

Verwenden Exit For kurz vor Weiter olMail, wenn Sie es laufen nur einmal wollen. Wenn Sie möchten, beenden, nachdem der, wenn die Bedingung erfüllt Ort wird vor Ende, wenn

Try this:

For Each olMail In myTasks 
    If (InStr(1, olMail.Subject, ws.Range("E" & FinalRow), vbTextCompare) > 0) Then 
     olMail.Display 
    Exit For 
    End If 
Next olMail 
0

For Each olMail In myTasks 
If (InStr(1, olMail.Subject, ws.Range("E" & FinalRow), vbTextCompare) > 0) Then 
    olMail.Display 
    End If 
Next olMail 

Mit

For Each olMail In myTasks 
    If (InStr(1, olMail.Subject, ws.Range("E" & FinalRow), vbTextCompare) > 0) Then 
     olMail.Display 
     Exit For '// Exit the loop if the item is displayed. 
    End If 
Next olMail 
+0

Dies ist möglicherweise nicht genau gewünscht. Ich denke OP möchte nach dem ersten Spiel aussteigen. myTasks (0) testet es nur für diesen bestimmten. – newguy

+0

@newguy Die 'For'-Schleife iteriert über jedes Element in der' myTasks'-Sammlung - was bedeutet, dass die erste 'Übereinstimmung' oder Iteration das Element bei Index 0 ist. Daher ist es nicht notwendig, eine Schleife überhaupt zu verwenden Greifen Sie direkt auf das erste Objekt in der Sammlung zu. –

+0

@newguy nvm - Ich sehe was du meinst, lies einfach die Frage erneut und aktualisiere. –