PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : مشکل در حلقه for each



majidartoor
2014/10/13, 00:45
سلام به همه ی دوستان
اساتید محترم در کد


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 ظاهر بشه.

Amir Ghasemiyan
2014/10/13, 08:07
سلام دوست عزيز
شما بايد از flag (پرچم) استفاده كنيد
به اين صورت كه وقتي يك بار كد اجرا شد يك متغير رو مثلا از 0 به 1 تغيير بدين. بعد يك شرط بذارين بگين در صورتي كه اون متغير 0 بود (يعني هنوز اجرا نشده) كد رو اجرا كنه

majidartoor
2014/10/13, 12:02
اگه میشه کدی که میگید رو بذارید.ممنون

yasertati3602
2014/10/13, 20:29
سلام
برای اینکه پیغام به تعداد شروط برقرار شده تکرار نشه باید یه خط بنویسی که بعد از پیغام از حلقه خارج بشی
پس بعد از پیغامت و دستور 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/10/13, 23:47
دوست عزیز ممنون.