ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
42 visibility
موضوع: آفیس توسط:

فردریک در مورد مشکلی که با یک ماکرو داشت نوشت. هنگامی که او ماکرو را در ویرایشگر VB با استفاده از F8 اجرا می کند (گام در ماکرو) تنها در چند دقیقه کامل می شود. هنگامی که او ماکرو را مستقیم اجرا می کند، به نظر می رسد اجرای آن برای همیشه طول می کشد، اغلب 20 دقیقه یا بیشتر اجرا می شود. اگرچه کتاب کار فردریکز بزرگ است (46 مگابایت)، تفاوت زمانی بین دو روش اجرا آزاردهنده است.

مشکلاتی از این دست ممکن است گیج کننده باشند، و اغلب برای پی بردن به آن، تحلیل های سنگینی را انجام می دهند. یک مکان خوب برای شروع این است که مقداری "کد تایمر" را در ماکرو خود اضافه کنید. یک روال کوچک اضافه کنید که مقدار زمان را ذخیره می کند و روال دیگری که مقدار ذخیره شده را با زمان فعلی مقایسه می کند و تفاوت را نشان می دهد. در ابتدای بخشی از کدی که می خواهید آنالیز کنید، روتین اول را فرا می خوانید (که باعث صرفه جویی در زمان شروع می شود) و سپس در پایان بخش کد روتین دوم را فراخوانی می کنید. به این ترتیب، می توانید تعیین کنید که کدام بخش از کد شما طولانی ترین زمان را برای اجرا می گیرد. اینها بخش های کدی هستند که سپس روی آنها تمرکز می کنید، بنابراین می توانید بفهمید که آنها چه کاری انجام می دهند که این همه طول می کشد.

نکته دیگر این است که مطمئن شوید این دو خط را در ابتدای ماکرو خود اضافه کرده اید:

Application.ScreenUpdating = False
Application.EnableEvents = False

اینها به روز رسانی صفحه را خاموش می کنند، که می تواند سرعت یک ماکرو در حال اجرا را کاهش دهد و رویدادها را غیرفعال کند. این خط آخر گنجانده شده است تا تغییرات انجام شده توسط ماکرو در کاربرگ شما باعث ایجاد روال های محاسبه مجدد Excels نشود. اگر ماکرو شما تغییرات زیادی در داده‌های کاربرگ ایجاد می‌کند و پس از هر تغییر، یک محاسبه مجدد کامل آغاز می‌شود، با چنین کتاب کار بزرگی، می‌توان زمان زیادی را صرف انجام محاسبه مجدد کرد. در پایان ماکرو، اثر دو خطی که اضافه کرده‌اید را معکوس می‌کنید:

Application.EnableEvents = True
Application.ScreenUpdating = True

همچنین ممکن است بخواهید زمانی که ماکرو شما در حال اجرا است، محاسبه خودکار را خاموش کنید. با انجام این کار مطمئن شوید که اکسل در حالی که ماکرو چیزها را جابجا می کند یا در غیر این صورت با داده ها کار می کند، سعی نمی کند نتایج متوسط ​​را محاسبه کند. برای خاموش کردن محاسبه خودکار، از این خط در ابتدای ماکرو استفاده کنید:

Application.Calculation = xlCalculationManual

این ایده خوبی است که فقط در صورتی که ماکرو شما به اطلاعات محاسبه شده در کاربرگ متکی نباشد، محاسبه خودکار را در ماکرو خاموش کنید. اگر آن را خاموش کنید، بعداً می توانید با قرار دادن خط زیر در انتهای ماکرو، محاسبه خودکار را دوباره فعال کنید:

Application.Calculation = xlCalculationAutomatic

یکی از خوانندگان پیشنهاد داد در حالی که ماکرو در کاربرگ اکسل در حال اجرا است، به برنامه دیگری تمرکز کنید. به عنوان مثال، Notepad را باز کرده و آن پنجره را فعال کنید. هنگامی که اکسل دیگر فعال نیست، سرعت ماکرو به میزان قابل توجهی افزایش می یابد. گزینه دیگری که باید امتحان کنید این است که نشانگر ماوس را به جای قرار دادن آن در کاربرگ فعال اکسل به سمت پایین به ناحیه نوار وظیفه ببرید.

اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

looks_5نام شما برای نمایش - اختیاری
حریم شخصی : آدرس ایمیل شما محفوظ میماند و برای استفاده های تجاری و تبلیغاتی به کار نمی رود
عدد چهار رقمی در تصویر را وارد کنید

برای جلوگیری از این تایید در آینده, لطفا وارد شده یا ثبت نام کنید.
اگر حساب گوگل دارید به راحتی وارید شوید

0 پاسخ وجود دارد

سوالات مشابه

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما
0 دوستدار 0 امتیاز منفی
0 پاسخ 29 visibility
0 دوستدار 0 امتیاز منفی
1 پاسخ 55 visibility
0 دوستدار 0 امتیاز منفی
1 پاسخ 37 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 28 visibility

24.3k سوال

9.6k پاسخ

614 دیدگاه

11.2k کاربر

353 نفر آنلاین
0 عضو و 353 مهمان در سایت حاضرند
بازدید امروز: 48486
بازدید دیروز: 25180
بازدید کل: 20385803
...