Microsoft Excel

Herbers Excel/VBA-Archiv

debug.print bei For..each Verständnisfrage


Betrifft: debug.print bei For..each Verständnisfrage von: Michael
Geschrieben am: 18.03.2018 16:12:06

Hallo,

ich habe folgende Verständnisfrage:
Bei einem Code (der funktioniert) soll einfach geschaut werden ob in einer bestimmten Zelle (F6) ein Wert eines Arrays (in dem Fall entweder "Pizza" oder "Döner" vorkommt.

Durch die For...each-Schleife müsste ja dann eigentlich immer erst nach der Pizza und dann nach dem Döner gesucht werden. Ich verstehe deshalb nicht warum bei debug.print (element) nur der Döner erscheint.

Müsste das nicht
Pizza
Döner

stehen?

Beste Grüße und vielen Dank im Voraus
Michael

Sub IfElse3()
Dim lngCriteriaCount As Long
Dim arrCriteria() As String
Dim element As Variant


lngCriteriaCount = 2

ReDim arrCriteria(0 To lngCriteriaCount - 1)
arrCriteria(0) = "Pizza"
arrCriteria(1) = "Döner"



For Each element In arrCriteria()  
        If element = Range("F6").Value Then
           
         
Debug.Print (element)


result = "Siiii :)"
Range("G6").Value = result
Exit Sub 


Else

result = "Noooo :("

End If



Next element

Range("G6").Value = result


End Sub


  

Betrifft: AW: debug.print bei For..each Verständnisfrage von: Hajo_Zi
Geschrieben am: 18.03.2018 16:15:35

Halo Michael,

in der Zelle F6 steht nur Döner?

GrußformelHomepage

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.


  

Betrifft: AW: debug.print bei For..each Verständnisfrage von: Michael
Geschrieben am: 18.03.2018 16:22:23

Hallo Hajo_Zi,

vielen Dank für deine Antwort! Genau, da steht nur der Döner.


  

Betrifft: AW: debug.print bei For..each Verständnisfrage von: Michael
Geschrieben am: 18.03.2018 16:27:22

Hab das debug.print gerade an einer anderen Stelle (direkt unter dem For...each) eingefügt und Voila:

Pizza
Döner

Glaube es jetzt verstanden zu haben.

Eine weitere Frage zum Code: ist das prinzipiell vernünftig die Aufgabe (also das Suchen in F6) mit einem Array zu lösen oder wäre das einfacher gegangen?


  

Betrifft: AW: debug.print bei For..each Verständnisfrage von: Sepp
Geschrieben am: 18.03.2018 16:34:31

Hallo Michael,

Array ist schon ok,allerdings braucht man keime Schleife.

Modul Modul2

Option Explicit 
 
Sub test() 
Dim varSearch As Variant 
 
varSearch = Array("Pizza", "Döner") 
 
Range("G6") = IsNumeric(Application.Match(Range("F6"), varSearch, 0)) 
 
End Sub 


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0

 AB
1Gruß Sepp
2Windows 10 64 bit
3Office 365 32 bit