خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


آموزش برنامه نویسی اکسل : حلقه For…Each…Next

آموزش برنامه نویسی اکسل : حلقه For…Each…Next
نویسنده : امیر انصاری
حلقه For…Each…Next یک کار را به تعداد دفعات ثابتی انجام می دهد، از این بابت درست شبیه حلقه For…Next است، اما بر خلاف حلقه For…Next در حلقه For…Each…Next از شمارنده برای تعیین تعداد دفعات تکرار استفاده نمی شود. تعداد دفعات تکرار در حلقه For…Each…Next مهم نیست، چرا که هدف آن اینست که یک کار را به تعداد اشیاء موجود در یک مجموعه (collection) تکرار می کند. ممکن است هزاران تکرار صورت پذیرد، ممکن است هیچ تکراری واقع نشود.

سیستم یکپارچۀ سازمانی راهکار



فرض کنید که به عنوان بخشی از طراحی پروژه فایل اکسل شما، یک ماکرو خاص و طولانی در صورتی که بقیۀ فایلهای اکسل بسته باشند، سریعتر انجام بشود و کمتر منجر به پریشانی کاربر گردد. به طور طبیعی شما هرگز نمی توانید بدانید که آیا کاربر 10 فایل اکسل دیگر باز کرده است یا بیشتر و یا کمتر. شاید هم فایلی که کاربر بر روی آن مشغول به کار هست تنها فایل اکسل باز باشد. یک حلقه For…Each…Next یک روش عالی برای بستن و ذخیره کردن سایر فایل های باز می باشد، در زیر نمونه ای از این نوع کد را می بینید:

Sub CloseWorkbooks()
'Declare your object variable.
Dim wb As Workbook
'Open the For loop structure.
For Each wb In Workbooks
'Enter the command(s)that will be repeated.
If wb.Name <> ThisWorkbook.Name Then
wb.Save
wb.Close
End If
'Loop to the next iteration.
Next wb
End Sub

توجه داشته باشید که یک متغیر برای شیء Workbook (فایل اکسل) ایجاد می شود، و مجموعۀ Workbooks ارزیابی می شوند و اگر نام هر کدام از آن workbook ها متفاوت از workbook جاری باشد، در مورد آن کارهایی انجام می شود. این کد ماموریت خودش را با نتایج یکسانی بر روی workbook شما تکمیل می کند، و برایش فرقی نمی کند که فایل اکسل شما تنها workbook باز باشد و یا اینکه پنجاه workbook دیگر نیز به صورت هم زمان باز بوده باشند.

یکی از کارهای عجیب و غریب اکسل اینست که شما می تواند هر تعداد برگه اکسل (worksheet) را که بخواهید همزمان مخفی کنید، اما اگر چندین برگۀ مخفی داشته باشید فقط قادر خواهید بود تا همزمان یکی از آن برگه ها را نمایان سازید. با استفاده از ماکرو زیر که در واقع مثال دیگری از کاربرد حلقه For…Each…Next می باشد، می توانید تا تمامی برگه ها را یکجا نمایان سازید.

Sub UnhideSheets()
'Declare your object variable.
Dim ws As Worksheet
'Open a For Ech loop.
For Each ws In Worksheets
'Command(s) to be executed.
ws.Visible = xlSheetVisible
'Loop to the next iteration.
Next ws
End Sub


آموزش قبلی : آموزش برنامه نویسی اکسل : حلقه For…Next

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



نمایش دیدگاه ها (1 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.