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


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

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

آموزش سالیدورکز 20-2019



فرض کنید که به عنوان بخشی از طراحی پروژه فایل اکسل شما، یک ماکرو خاص و طولانی در صورتی که بقیۀ فایلهای اکسل بسته باشند، سریعتر انجام بشود و کمتر منجر به پریشانی کاربر گردد. به طور طبیعی شما هرگز نمی توانید بدانید که آیا کاربر 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

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



دیدگاه ها(0)

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

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

لطفا پیش از ارسال دیدگاه ، به نکات زیر توجه فرمایید :

- از نوشتن دیدگاه های غیر مرتبط با پست جدا خودداری کنید. دیدگاه ها و سوالات متفرقۀ خود را می توانید در تالارهای گفتمان خوش آموز مطرح نمایید.
- لطفاً دیدگاه های خود را با حروف فارسی تایپ کنید، دیدگاه های فینگیلیش تایید نمی شوند.
- قبل از ارسال دیدگاه حتما متن پست و نظرات سایر دوستان را بخوانید . نظرات اسپم و تکراری تایید نخواهند شد.
- نظر شما ممکن است بدون پاسخ تایید شوند که در این صورت باید منتظر پاسخ از سوی دیگر کاربران باشید .
- لطفا انتقادات و پیشنهادات و همچنین درخواست های خود را از طریق ایمیل khoshamoz[at].hotmail.com ارسال نمایید
- چرا آموزش های سایت خوش آموز در قالب فایل pdf به صورت یکجا ارائه نمی شوند؟
- چرا برخی پرسش های کاربران پاسخ داده نمی شوند؟


دوره رایگان آموزش جامع برنامه نویسی اکسل (VBA) از مقدماتی تا پیشرفته

دوره رایگان آموزش جامع برنامه نویسی اکسل (VBA) از مقدماتی تا پیشرفته