جلسه دهم- برنامه نویسی اکسل - حلقه های شرطی

روش اول: در این روش شرط در ابتدا بررسی می شود

DO

دستورات

LOOP WHILEیاUNTIL  شرط مورد نظر

 

روش دوم: در این روش شرط در انتها بررسی می شود

 

DO  WHILEیاUNTIL  شرط مورد نظر

دستورات

LOOP

 

به این مفهوم که:

 انجام بده این کار را تا زمانی که بتونی انجام بدی....

یا

انجام بده این کار را تا زمانی که نتونی انجام بدی....

 

بنابراین

  • وقتی از WHILE  استفاده می شود مادامیکه شرط برقرار باشد دستورات انجام میشوند
  • وقتی از Until  استفاده می شود حلقه به محض وقوع شرط حلقه خاتمه می یابد( به عبارتی حلقه تا زمانیکه شرط برقرار نیست ادامه پیدا می کند)

 

 

بنابراین در مجموع 4 نوع حلقه شرطی  DO-LOOP وجود دارد.

 

با ذکر چند برنامه ساده اینگونه حلقه ها توضیح داده خواهد شد

 مثال اول :

در ستون اول از یک شیت اعدادی بصورت پشت سر هم داده هایی وجود دارند .میخواهیم برنامه ای بنویسیم که تعداد داده های موجود در این ستون را پیدا کند. (بین داده ها این ستون سلول خالی وجود ندارد.)

 

Sub do_loop()

   i = 0

      Do

           i = i + 1

     Loop While Cells(i, 1)<>""

 Cells(1, 2) = i – 1

 End Sub

 

ملاحظه می شود که برنامه اعداد  i را در ستون مذکور تا جایی که به سلول خالی برسید با هم جمع می کند. توضیح بیشتر و برنامه های بیشتر در مورد این حلقه شرطی به جلسه بعد موکول می شود.

  

در مثال قبلی برای بررسی شرط می توان از دستور  IsEmpty  در حلقه شرطی DO-LOOPاستفاده کنیم

در آنجا دیدیم که از خط برنامه زیر در برنامه جهت رسیدن به این هدف استفاده نمودیم:

Loop While Cells(i, 1)<>""

به جای این عبارت در صورتی که از حلقه شرطی DO-LOOPاستفاده می کنیم می توانیم از عبارت زیر استفاده نماییم:

Loop Until IsEmpty(Cells(i, 1))

 لذا برنامه به شکل زیر اصلاح می گردد:

 

Sub do_loop()

i = 0 

         Do

              i = i + 1

          Loop Until IsEmpty(Cells(i, 1))          

   Cells(1, 2) = i - 1

End Sub

 

مثال دوم: می خواهیم برنامه ای بنویسیم مجموع مقادیر 1 تا 100 را بدون آنکه در سلهای جدول این اعداد را نشان دهد، در یک MASSAGE BOXنشان دهد.برنامه به شکل زیر نوشته می شود:

Sub do_loop2()

     i = 1

    Sum = 0

            Do

                  Sum = Sum + i

                  i = i + 1

            Loop While i <= 100

      MsgBox Sum

End Sub

 

مثال سوم:تعدادی عدد (حداکثر 1000 عدد )در سلهای یک ستون اکسل وجود دارد که برخی سلهای همان ستون خالی و فاقد عدد است. برنامه ای بنویسید که آخرین عدد آن ستون را در سطر B1بنویسد.

برنامه مورد اشاره به شکل زیر نوشته خواهد شد:

 

Sub do_loop3()

      i = 1000

            Do

                   i = i - 1

           Loop While IsEmpty(Cells(i, 1))

      MsgBox i

End Sub

 

 

 

/ 0 نظر / 372 بازدید