مشکل در حلقه for each

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • majidartoor

    • 2014/06/30
    • 55

    مشکل در حلقه for each

    سلام به همه ی دوستان
    اساتید محترم در کد
    کد:
    J = 0
    b =5
    For Each a In Sheets("check").Range("A2:A50")
        If  a = b Then
            MsgBox "true"
            J = 1
        End If
    Next
    If J = 0 Then
        MsgBox "false"
    End If
    اگه تو رنج a2:a50 شرط If a = b سه بار برقرار بشه،اونوقت سه بار هم "MsgBox "true ظاهر میشه،
    حالا اگه بخوام فقط یک بار ظاهر بشه باید چیکار کنم؟
    یعنی وقتی کد اجرا میشه هرچند بار هم که a = b شد،فقط یک بار " MsgBox "true ظاهر بشه.
    Last edited by majidartoor; 2014/10/13, 01:55.
  • Amir Ghasemiyan

    • 2013/09/20
    • 4598
    • 100.00

    #2
    سلام دوست عزيز
    شما بايد از flag (پرچم) استفاده كنيد
    به اين صورت كه وقتي يك بار كد اجرا شد يك متغير رو مثلا از 0 به 1 تغيير بدين. بعد يك شرط بذارين بگين در صورتي كه اون متغير 0 بود (يعني هنوز اجرا نشده) كد رو اجرا كنه

    کامنت

    • majidartoor

      • 2014/06/30
      • 55

      #3
      اگه میشه کدی که میگید رو بذارید.ممنون

      کامنت

      • yasertati3602

        • 2013/10/16
        • 32

        #4
        سلام
        برای اینکه پیغام به تعداد شروط برقرار شده تکرار نشه باید یه خط بنویسی که بعد از پیغام از حلقه خارج بشی
        پس بعد از پیغامت و دستور j=1 کد زیر رو بنویس
        exit for
        کد:
        Sub test()
        Dim a As Range
        J = 0
        b = 5
        For Each a In Sheet1.Range("A2:A50")
            If a = b Then
                MsgBox "true"
                 J = 1
                Exit For
            End If
        Next
        If J = 0 Then
            MsgBox "false"
            Exit Sub
        End If
        End Sub
        موفق باشی

        کامنت

        • majidartoor

          • 2014/06/30
          • 55

          #5
          دوست عزیز ممنون.

          کامنت

          چند لحظه..