نمایش نتایج: از شماره 1 تا 8 , از مجموع 8

موضوع: راه کار هایی جهت افزایش سرعت برنامه ها

  1. #1


    آخرین بازدید
    2022/12/05
    تاریخ عضویت
    October 2011
    محل سکونت
    مشهد
    نوشته ها
    4,374
    امتیاز
    12614
    سپاس
    4,596
    سپاس شده
    11,990 در 3,203 پست
    سطح اکسل
    70.00 %

    راه کار هایی جهت افزایش سرعت برنامه ها

    با سلام
    در اینجا قصد دارم راهکار هایی برای افزایش قابلیت و سرعت برنامه هایی که با VBA نوشته میشه ارائه بدم بعضی از این راه کار ها به صورت تجربی بدست آوردم بعضی هم از جاهای مختلف جمع اوری کردم سایر دوستان هم تو تکمیل این بحث کمک کنن چون به نظرم مبحث مهمیه

    برای افزایش سرعت برنامه هایی که از طریق VBA نوشته می شن روش هایی متفاوتی وجود داره مهمترین روش تکنیکی هست تو برنامه نویسی یک برنامه نویس استفاده میکنه که لازمه اون تجربه است اما خود اکسل و VBA امکاناتی برای افزایش سرعت در اختیار ما قرار میده.

    1-غیر فعال کردن برخی از خصوصیت ها حین اجرای ماکرو برای این کار کد های زیر را به ابتدا و انتهای برنامه بیافزایید.
    [align=left]
    کد PHP:
    Sub macro()
    Application.ScreenUpdating false
    Application
    .DisplayAlerts false
    Application
    .Calculation xlManual
    ……
    ..
    Application.ScreenUpdating true
    Application
    .DisplayAlerts true
    Application
    .Calculation xlAutomatic
    end sub 
    [/align]
    از کد های زیر نیز میتوان استفاده کرد:
    [align=left]
    کد PHP:
    Application.StatusBar false
    Application
    .PrintCommunication False 
    [/align]
    2-تا حد امکان از انتخاب کردن سل ها و محدوده ها خودداری کنید،بجای انتخاب کردن کپی کردن و paste کردن از تساوی استفاده کنید.
    [align=left]
    کد PHP:
    Range("A1").value 10 
    [/align]
    کد فوق از کد زیر سریعتر است.
    [align=left]
    کد PHP:
    Range("A1").select
    Selection
    .Value 10 
    [/align]
    3- تا حدی که می توانید از توابع و متد های زبان برنامه نویسی استفاده کنید و از کد نویسی برای نیاز های خود پرهیز کنید مثلا استفاده از کد زیر
    [align=left]
    کد PHP:
    A=Application.WorksheetFunction.Sum(Range("a1""a10"))
    بجای
    A
    =0
    For i=1 to 10
    A
    =cells(I,1)
    Next  i 
    [/align]
    - از ایجاد حلقه ها بخصوص حلقه های تودر تو اجتناب کنید ، برای حل یک مسئله ابتدا روش ها مختلف را بررسی کنید به عنوان مثلا برای جستجوی یک مقدار از توابع search,find,index,match,lookup,… استفاده کنید .
    5- اگر میخواهید عملیاتی بر روی یک محدوده اعمال کنید محدوده را نامگذاری کنید برای توسعه محدوده از فرمول offset استفاده کنید بجای اینکه محدوده بزرگی انتخاب کنید تا نیاز اینده را برطرف کند بلکه محدوده را به تدریج توسعه دهید.
    6-زمانی که میخواهید عملیات متفاوتی بر روی یک ابجکت اعمال کنید از with block استفاده کنید این کار علاوه بر نظم ظاهری در عمکرد کد هم موثر است.
    7-زمانی که میخواهید نیاز خود را از طریق کد نویسی در اکسل مرتفع کنید به جوانب مسئله خود فکر کنید و ان را به دو بخش تقسیم کنید 1- بخشی که لزوما باید کد نویسی کنید و 2-بخشی که از طریق ابزار های اکسل اعم از فرمول ها ، conditional formattingو addins های اکسل و... میتوان حل کرد بنا براین لزومی ندارد کل مسئله به صورت کد پیاده شود تلفیق کلیه امکانات در دسترس نتیجه بهتری میدهد
    8-در نوشتن فرمول ها از قواعد نامگذاری استفاده کنید و محدوده ها را با offset توسعه دهید
    9-قبل از شروع بکار ابتدا جستجویی در اینترنت داشته باشید معمولا کدهای آماده با عملکرد بالا را میتوانید بیابید این امر بر مهارت شما نیز خواهد افزود به شرط اینکه کد ها را بخوبی تحلیل کنید.
    10-برنامه خود را قبل از شروع به کد نویسی روی کاغذ پیاده کنید و طرح اولیه انرا ایجاد کنید سپس به قسمت های کوچک تقسیم کنید سعی نکنید یک پروسه را با یک کد طولانی انجام دهید بلکه برنامه را به توابع و رویه های کوچک تقسیم کنید.
    11- از کنترل خطاها یا error handing تا حد امکان استفاده نکنید مگر اینکه طیف وسیعی از افراد کاربر برنامه شما باشند در صورتی که خود شما کاربر برنامه هستید از حداقل کنترل خطا استفاده کنید البته میزان دقت خود شما در این روش مؤثر است.
    12-با استفاده از ctrl+end آخرین سل استفاده شده را یافته و در صورتی که نیاز ندارید انها را حذف کنید
    13-در صورتی که قصد ایجاد جدول و یا دیتابیس در اکسل دارید از table استفاده کنید.
    14-اطلاعات موجود را قبل از استفاده sort کنید.
    15- در هر خط برنامه میتوان از خلاقیت برای افزایش کارایی استفاده کرد به عنوان مثال نتیجه دو کد زیر یکسان است اما قابلیت کد دوم به مراتب بیشتر است.
    [align=left]
    کد PHP:
    1-
    If 
    x>1 then
    A
    =true
    Else
    A=false
    End 
    if
    2-
    A=x>
    [/align]
    -برای کاهش حجم میتوانید از فرمت xlsb بجای xlsmیا xlsx استفاده کنید در این حالت برنامه شما کم حجم تر خواهد بود.
    17-از عوامل مهم کاهش سرعت استفاده از منابع و لینک های خارجی است لذا از ایجاد لینک های غیر ضروری باید پرهیز شود.
    18-اگر فایل هایی با فرمت 2003 دارید و در حال حاضر از ورژن های 2007 به بالا استفاده می کنید آنها را به فرمت های جدید convert نمایید.
    19-استفاده از pivot table بر کارایی و سرعت برنامه شما نسبت به سایر روش ها خواهد افزود.
    اخطار: این یک موضوع قدیمی است
    به دلیل قدیمی بودن موضوع، ممکن است برخی فایل های ضمیمه به درستی کار نکنند. لطفا در صورت عدم ضرورت، از بالا آوردن موضوعات قدیمی خودداری نمایید.
    ویرایش توسط ~M*E*H*D*I~ : 2018/11/02 در ساعت 19:57


  2.  

  3. #2


    آخرین بازدید
    2023/08/14
    تاریخ عضویت
    March 2010
    محل سکونت
    تهران
    نوشته ها
    2,034
    امتیاز
    4508
    سپاس
    2,467
    سپاس شده
    4,096 در 1,241 پست
    سطح اکسل
    85.00 %

    khakzad به Yahoo ارسال پیام

    RE: راه کار هایی جهت افزایش سرعت برنامه ها

    سلام
    خیلی خیلی ممنوننننن
    من این پست و ندیده بودم.
    جالب بود
    مرسی[hr]
    شماره 11 رو ی توضیح میدین که منظور چی هس؟
    و اینکه شماره 6 همون with معمولی هست؟یعنی بجای block اسم ابجکتمون و باید ینویسیم؟[hr]
    و اون اول، displayalert که false میکنیم، دقیقا چیا رو نشونمون نمیده؟؟؟؟؟[hr]
    اینم لطفا ی توضیح بدین:blush: مرسی
    کد:
    Application.StatusBar = LoopNum
    Application.PrintCommunication = False

  4. #3


    آخرین بازدید
    2022/12/05
    تاریخ عضویت
    October 2011
    محل سکونت
    مشهد
    نوشته ها
    4,374
    امتیاز
    12614
    سپاس
    4,596
    سپاس شده
    11,990 در 3,203 پست
    سطح اکسل
    70.00 %

    RE: راه کار هایی جهت افزایش سرعت برنامه ها

    کنترل خطا یعنی مثلا یک تکت باکس دادرید یه شرط میذارن که اگه خالی بود پیغام خطا بده ، کد اول بخشی از یک کد کلی بوده که فک میکنم تو نوشتنش اشتباه کرده باشم چون باید مقدار اون هم false باشه که تصحیحش کردم، و کد دوم ارتباط بین pagesetup و پرینتر رو به صورت موقت قطع میکنه فقط باید ارزش اون رو در انتهای کد true کنیم

  5. #4


    آخرین بازدید
    2023/08/14
    تاریخ عضویت
    March 2010
    محل سکونت
    تهران
    نوشته ها
    2,034
    امتیاز
    4508
    سپاس
    2,467
    سپاس شده
    4,096 در 1,241 پست
    سطح اکسل
    85.00 %

    khakzad به Yahoo ارسال پیام

    RE: راه کار هایی جهت افزایش سرعت برنامه ها

    ممنونم.شماره 6 و displayalert مال چی بود؟

  6. #5


    آخرین بازدید
    2019/07/30
    تاریخ عضویت
    March 2012
    نوشته ها
    117
    امتیاز
    92
    سپاس
    11
    سپاس شده
    85 در 32 پست
    تعیین سطح نشده است

    RE: راه کار هایی جهت افزایش سرعت برنامه ها

    فرض کنید می خواهید یک سطر یا یک شیت را حذف کنید اکسل جهت اطمینان از شما می پرسه مطمئن هستید که میخواهید حذف کنید
    Application.DisplayAlerts = false
    باعث میشه که اکسل این سوال را از شما نپرسه

  7. #6


    آخرین بازدید
    2014/12/22
    تاریخ عضویت
    April 2012
    نوشته ها
    90
    امتیاز
    2
    سپاس
    5
    سپاس شده
    6 در 6 پست
    تعیین سطح نشده است

    RE: راه کار هایی جهت افزایش سرعت برنامه ها

    برای دسترسی به اولین سطر خالی در یک شیت از چه کدی میشه استفاده کرد؟ فرض کنید میخویم به یک سلول (که در اولین سطر خالی قرار داره) مقدار بدیم ولی از دستور each استفاده نکنیم.

  8. #7


    آخرین بازدید
    تاریخ عضویت
    January 2014
    نوشته ها
    172
    امتیاز
    202
    سپاس
    41
    سپاس شده
    78 در 46 پست
    تعیین سطح نشده است

    واقعا عالیه
    تشکرازاستادبزرگ

  9. #8


    آخرین بازدید
    2022/06/26
    تاریخ عضویت
    January 2013
    محل سکونت
    شیراز
    نوشته ها
    1,198
    امتیاز
    3248
    سپاس
    1,566
    سپاس شده
    3,182 در 795 پست
    سطح اکسل
    84.00 %

    با درود
    در مورد اولین سطر خالی شیت واسه مقدار دهی به ترفند ها هزار و یک شب شب 62 مراجه کنید در اونجا شما اخرین ردیف رو میتونی پیدا کنی کافی به اون متغیییر یه یک اظافه کنی درست میشه - در ضمن مثال ها در کد نویسی های متنوعی تو سایت برای این مورد هست . بیشتر دقت کنید
    در پناه خداوندگار ایران زمین باشید و پیروز



اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. جدا کردن اضافه کار از جمع ساعت کار
    توسط مجید در انجمن توابع اکسل - Excel Functions
    پاسخ ها: 9
    آخرين نوشته: 2018/07/30, 16:07
  2. تبدیل ساعت کار یه حالت معمولی
    توسط master در انجمن سوالات پیرامون ويژوال بيسيك - VBA Questions
    پاسخ ها: 10
    آخرين نوشته: 2016/11/22, 17:04
  3. کمک در مورد ساخت نرم افزار ساعت ورود و خروج کارگران
    توسط morteza2006 در انجمن سوالات پیرامون ويژوال بيسيك - VBA Questions
    پاسخ ها: 18
    آخرين نوشته: 2012/07/04, 14:20
  4. ساعت نموداري!
    توسط safaei.mehdi@mapnablade.com در انجمن گرافیک، نمودار و تنظیمات - Graphics, Charts and Settings
    پاسخ ها: 0
    آخرين نوشته: 2012/04/18, 16:09
  5. تبدیل ساعت محلی به utc
    توسط s_ehsany در انجمن سوالات اكسل - Excel Questions
    پاسخ ها: 5
    آخرين نوشته: 2011/06/07, 17:20

بازدید کنندگان با جستجو های زیر این صفحه را پیدا کرده اند

افزایش سرعت اکسس

افزایش سرعت اکسل

افزایش سرعت دیتابیس اکسس

روش سرعت بخشیدن به برنامه ایکسل

بالا بردن سرعت اکسل 2013

روش سرعت اکسل

بالا بردن سرعت اکسس

حل مشکل کاهش سرعت در اکسل

افزایش سرعت در اکسس

نرم افزار بالابردن سرعت اکسل

علت کند شدن سرعت صفحه excell 2003

افزایش سرعت اجرای برنامه اکسل

دلیل سرعت پایین در اکسل

راهکارهای برنامه اکسس

علت پایین بودن سرعت اکسل

علت کند شدن سرعت اکسل برای جستجو با تابع

تفژایش سرعت احرای کدهای vba

افزایش سرعت اجرای ماکرو در اکسل

سرعت ماکرو اکسل

بالا بردن سرعت اجرای ماکرو

ترفند اکسل برای افزایش سرعت کار

دلیل پایین آمدن سرعت اکسل

افزایش سرعت در ویژوال بیسیک

افزایش سزعت اکسل

افزایش سرعت سرچ اکسز

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  
  • BB code ها فعال هستند
  • شکلک ها فعال هستند
  • کد [IMG] فعال است
  • کد [VIDEO] فعال است
  • کد HTML غیر فعال است