برنامه نویسی با انواع حلقه ها در اکسل_42
در جلسه چهل و دوم از آموزش اکسل درمورد برنامه نویسی با انواع حلقه ها در اکسل صحبت خواهیم کرد.
یکی از ابزار های مهم و پر کاربرد دیگر برنامه نویسان حلقه ها یا Loop هاس هستند که این امکان را به شما می دهند تا با توجه به شرایطی که تعیین میکنید یک عملیات چندین بار انجام شود.
در حلقه ها اجرا کننده کد، در خط های درون حلقه گیر می کند و تا پایان شرایط مدام کد های درون حلقه را اجرا میکند و دوباره اجرا می کند و دوباره اجرا می کند…
حلقه ها در اکسل
یکی از کاربرد حلقه ها در اکسل، حرکت درون خانه های اکسل است، در تک حلقه ها به صورت یک بعدی می توان در حلقه ها حرکت کرد.
قبلا یاد گرفتیم چگونه دکمه ای ایجاد کنیم تا کلیک بر روی آن کدی اجرا شود، از همان تکنیک استفاده می کنیم و کد زیر را در هنگام کلیک بر روی دکمه اجرا خواهیم کرد:
Dim i As Integer
For i = 1 To 6
Cells(i, 1).Value = 100
Next i
نتیجه اجرای کد به صورت زیر خواهد بود:
در خط اول یک متغیر با نام i ساختیم که از جنس اینتیجراست و اعداد درون آن جای می گیرد.
بلوک حلقه از For شروع شده و تا Next i ادامه دارد و کد های درون این بلوک از زمانی که i برابر با ۱ است شروع می شود و تا زمانی که مقدار i به ۶ برسد ادامه دارد.
کد درون حلقه Cells(i, 1).Value = 100 است.
یعنی در بار اول اجرای حلقه کد Cells(1, 1).Value = 100 اجرا می شود و با رسیدن به Next i به مقدار i یک واحد اضافه می شود.
یعنی در بار دوم اجرای حلقه کد Cells(2, 1).Value = 100 اجرا می شود.
در بار سوم اجرای حلقه کد Cells(3, 1).Value = 100 اجرا می شود.
در بار چهارم اجرای حلقه کد Cells(4, 1).Value = 100 اجرا می شود.
حلقه های تو در تو در VBA
می توان حلقه ای را درون حلقه ی دیگری بکار برد! این کار باعث می شود کل حلقه درونی به تعداد اجرای حلقه بیرونی اجرا میشود.
مثال دکمه را یک بار دیگر با کد زیر اجرا میکنیم:
Dim i As Integer, j As Integer
For i = 1 To 6
For j = 1 To 2
Cells(i, j).Value = 100
Next j
Next i
یک حلقه را با متغیر i و دیگر را با j به چرخش در می آوریم.
در این حالت پیمایش سلول های اکسل را به صورت دوبعدی خواهیم داشت:
دقت کنید:
کدی که به صورت دوبعدی اجرا می شود و در هر دو حلقه می باشد Cells(i, j).Value = 100 است.
یعنی زمانی که در اولین مرحله از اجرای حلقه ی بیرونی هستیم کد های زیر اجرا میشود:
Cells(1, 1).Value = 100
Cells(1, 2).Value = 100
(چون حلقه ی درونی دوبار اجرا میشود، این دو کد تولید میشود)
در دومین اجرای حلقه بیرونی کد های زیر اجرا میشود:
Cells(2, 1).Value = 100
Cells(2, 2).Value = 100
و الی آخر….
حلقه تو در تو سه تایی
یکی از مدل های حلقه ها در اکسل حلقه تو در تو یه تایی میباشد. در این حالت کار به صورت سه بعدی پیش میرود، ستون ها ، ردیف ها و شیت ها!
Dim c As Integer, i As Integer, j As Integer
For c = 1 To 3
For i = 1 To 6
For j = 1 To 2
Worksheets(c).Cells(i, j).Value = 100
Next j
Next i
Next c
تحلیل کد با خودتان.
حلقه های Do While
این مدل حلقه ها کاری به دفعات اجرای کد درون حلقه ندارد، و تا زمانی که یک شرط خاص محقق باشد کار خود را ادامه میدهد!
کد زیر را در مثال دکمه می گذاریم:
Dim i As Integer
i = 1
Do While i < 6
Cells(i, 1).Value = 20
i = i + 1
Loop
البته ما در این مثال کاری کردم که کد مانند حالت های قبل به صورت دفعات اجرا باشد، کد تا زمانی که i < 6 باشد اجرا می شود، و خودمان باید با کد i = i + 1 مقدار i را افزایش دهیم. در این حالت بلوک از Do While شروع می شود و تا Loop ادامه دارد.
مثال ۲:
یک فایل جدید بازکنید و در ستون اول مانند شکل زیر اعدادی به دلخواه وارد کنید.
باز از مثال دکمه استفاده کنید و کد زیر را اجرا کنید.
Dim i As Integer
i = 1
Do While Cells(i, 1).Value <> “”
Cells(i, 2).Value = Cells(i, 1).Value + 10
i = i + 1
Loop
اینبار شرط حلقه این است که خانه Cells(i, 1) مخالف با “” باشد، یعنی خالی نباشد.
در خانه هایی که خالی نیستند روی ستون کناریشان مقدار را +۱۰ می کنیم و وارد میکنیم!
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.