Wie fallen Sie durch ein Select Case in Excel-VBA?
Gegeben
Select Case cmd
case "ONE": MsgBox "one"
case "TWO": MsgBox "two"
case "THREE": MsgBox "three"
End select
Meine Forderung ist, wenn cmd = "ONE"
ich brauche "one"
und dann "two"
angezeigt, aber derzeit bin ich immer "one"
angezeigt und dann das Programm bricht aus der select case...
was passiert, wenn cmd = "zwei"?
Ich glaubst das ist auch so gewollt; der code springt automatisch an das Ende nach der letzten Anweisung in dem Fall. Sie müssen das Programm um es (durch die Verwendung von Verfahren, zum Beispiel) statt.
wenn cmd = "zwei" sollte standardmäßig drucken "zwei" und brechen aus... ich denke, dies ist das Standardverhalten von VBA.. ich denke VBA implizit fügt "Pause" - Anweisungen nach jedem Fall, das will ich umgehen.
Ich glaubst das ist auch so gewollt; der code springt automatisch an das Ende nach der letzten Anweisung in dem Fall. Sie müssen das Programm um es (durch die Verwendung von Verfahren, zum Beispiel) statt.
wenn cmd = "zwei" sollte standardmäßig drucken "zwei" und brechen aus... ich denke, dies ist das Standardverhalten von VBA.. ich denke VBA implizit fügt "Pause" - Anweisungen nach jedem Fall, das will ich umgehen.
InformationsquelleAutor Kevin Boyd | 2009-10-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
ich versuche zu helfen, sir, fest.
Nice one! , die syntax für mich gearbeitet! 🙂
Nur klar zu sein, für den schnellen Leser: DIES IST KEIN FALL-THROUGH.
InformationsquelleAutor manji
Einige, wenn die den job tun könnte:
InformationsquelleAutor
Werden Sie müssen es nur tun, der lange Weg.
InformationsquelleAutor Lance Roberts
Das so gewollt ist. http://msdn.microsoft.com/en-us/library/ee177199%28PROT.10%29.aspx
Könnten Sie versuchen, mithilfe von 'gehe zu' - oder Prozeduraufrufe zu umgehen.
Ja, aber es wäre wirklich unschön und sehr schwer zu Debuggen (und für jeden Erben der code wird nicht erfreut sein, dass Unkraut durch "spaghetti-code").
InformationsquelleAutor Michael Todd
Warum verwenden Sie einen Fall? Alles, was Sie tun, ist drucken die lower-case-version von was auch immer Wert 'cmd' ist.
InformationsquelleAutor JimmyPena
Springen würde gut funktionieren, denke ich.
Es funktioniert, habe es getestet.
InformationsquelleAutor Stephen Fluharty
Ich hatte auch dieses problem vor kurzem.
Fand ich die meisten gut lesbar und scale-fähig-Lösung wurde für das erstellen einer einfachen state-machine.
Einfach wickeln Sie die
Select
imWhile
und Ende jeweils mit dem Fall weiter.InformationsquelleAutor undeadherbs