سلام
از شما متشکرم آقا اشکان که لااقل برنامه رو دیدید. اون روشی که معرفی کردید سرعت رو بالا می بره ممنون اما من بیشتر روی کد ها کار کردم و نتایج قابل قبولی گرفتم.
یادم اومد قبلا آقا حامد ارفعی با آی دی Hamed_Arfaee به من لطف داشتند و در VBA فرمانی رو معرفی کردند که باعث افزایش سرعت نوشتن اطلاعات می شد. درواقع با False کردن مقدار خصوصیت ScreenUpdating میشه باعث این شد که Excel وقتی رو برای به روز کردن اطلاعات نمایشی صرف نکنه و بعدا که ما همه اطلاعات رو نوشتیم با یک بار True کردن ScreenUpdating باعث می شیم که Excel به جای مثلا 2000 بار (این در کد نمونه اتفاق می افتاد) فقط یک بار اقدام به نوسازی محتویات صفحه نمایش کنه.
از طرفی پیش خودم فکر کردم با وجود False بودن Visible پنجره Excel حتی False بودن ScreenUpdating کارساز نباشه برای همین امتحان کردم کد زیر رو اضافه کردم:
.Application.ScreenUpdating = False
و در پایان نوشتن اطلاعات در سلول های اکسل کد زیر رو آوردم:
.Application.ScreenUpdating = True
بدون این دو خط در برنامه قبلی زمان روی سیستم من 57 ثانیه بود (کپشن فرم اصلی زمان رو نشون می ده در پایان عملیات)
اما با False و True کردن به موقع خصوصیت ScreenUpdating زمان به 47 ثانیه کاهش پیدا کرد که این خودش بسی جای شکر داره.
تا یادم نرفته این رو هم بگم که روشی که در بالا معرفی شد در صورتی که پنجره Excel در حالت مشاهده (Visible=True) باشه سرعت رو تا 10 برابر هم بیشتر می کنه!!!
اما برای کاری که من می خوام انجام بدم حتی زمان 47 ثانیه هم خیلی زیاده.
بعدا یاد یه قضیه ای افتادم:
برای اینکه یک مجموعه سلول رو از Excel دریافت کنیم Excel اون مجموعه رو در آرایه ماتریکس مانندی به Vb تحویل می ده.
این شد که با خودم گفتم حتما عکسش هم ممکنه!
یعنی ما به جای اینکه بیایم تک تک سلول ها رو مقدار دهی کنیم. بیاییم و یک آرایه مربعی تشکیل بدیم و با مقدار دهی اون آرایه بعدا و فقط با یک خط کد بتونیم یک جا اطلاعات رو به Excel وارد کنیم.
این کار رو کردم و به نتیجه رسیدم.
زمان روش جدید نه دهم ثانیست

یعنی 63 برابر بیشتر از روش های قبلی

کد ضمیمه همون برنامه قبلی با این تفاوت که کار اون رو به جای 57 ثانیه در نه دهم ثانیه انجام میده.
البته کار های دیگه ای هم کردم:
مثلا باز به جای اینکه بیام و تک تک سلول ها رو تغییر اندازه فونت بدم اومدم و همه یک مجموعه رو یکجا تغییر اندازه فونت دادم باید کد روببینید.