View Full Version : مشکل در آزاد سازی حافظه
ali-se
پنج شنبه 24 دی 1394, 12:24 عصر
با سلام
دوستان من تو برنامه نیاز دارم یه فایل اکسل بسازم و اطلاعاتمو توش قرار بدم
با این کد یه نمونه می سازم:
Dim xlApp As Excel.Application
Dim excelWB As Excel.Workbook
Set xlApp = CreateObject("Excel.Application")
وقتی پروسیجر تموم میشه در انتها سعی می کنم حافظه رو آزاد کنم، با این کد:
Set excelWB = Nothing
Set xlApp = Nothing
ولی همچنان یه فایل اکسل که تو TASK MANAGER بوجود اومده بود باقی میمونه(حتی بعد از بستن دستی فایل اکسل) ، یعنی کد NOTHING هیچ کاری نمیکنه!
ممنون
alirezabahrami
پنج شنبه 24 دی 1394, 19:03 عصر
با سلام
دوستان من تو برنامه نیاز دارم یه فایل اکسل بسازم و اطلاعاتمو توش قرار بدم
با این کد یه نمونه می سازم:
Dim xlApp As Excel.Application
Dim excelWB As Excel.Workbook
Set xlApp = CreateObject("Excel.Application")
وقتی پروسیجر تموم میشه در انتها سعی می کنم حافظه رو آزاد کنم، با این کد:
Set excelWB = Nothing
Set xlApp = Nothing
ولی همچنان یه فایل اکسل که تو TASK MANAGER بوجود اومده بود باقی میمونه(حتی بعد از بستن دستی فایل اکسل) ، یعنی کد NOTHING هیچ کاری نمیکنه!
ممنون
سلام
در ابتدای کدهای مربوط به ساخت فایل اکسل کدهای زیر را وارد کن ببین تغییری حاصل میشه !
Dim Myfile As String
If Dir(App.Path & "\ExcelFile\*.xlk") <> "" Then
Myfile = Dir(App.Path & "\ExcelFile\*.xlk")
Kill App.Path & "\ExcelFile\" & Myfile
End If
ExcelFile در واقع نام پوشه ای است که فایل های اکسل را در آنجا ذخیره می نمائید و اگر چنین پوشه ای در کنار برنامه ات نداری آن را از کدهای فوق حذف کن
موفق باشید
ali-se
جمعه 25 دی 1394, 11:49 صبح
ممنون از راهنماییتون
ولی نکته اینجاست که هدفم از ساختن یک نمونه جدید ذخیره نکردن اونه و میخوام فایل خروجی باز بشه و اختیارش برای کاربر باشه که ذخیرش بکنه یا نه
در ضمن بتونه بدون محدودیت چندین بار گزارش رو تو موقعیت های مختلف بسازه و هر دفعه یه اکسل جدید براش باز بشه
ali-se
شنبه 26 دی 1394, 00:09 صبح
دوستان کسی پیشنهادی نداره؟
meys34
شنبه 26 دی 1394, 03:53 صبح
سلام
با این کد باز میشه
Dim xlApp As Excel.Application
Dim excelWB As Excel.Workbook
Set xlApp = CreateObject("Excel.Application")
ایجاد صفحه جدید
Set excelWB = xlApp.Workbooks.Add
یا باز کردن فایل
Set excelWB = xlApp.Workbooks.Open( "C:\Sample1.xls" )
بستن صفحه (بدون سیو)
excelWB.Close (False)
در نهایت خروج از اکسل
xlApp.Application.Quit
و البته خالی کردن حافظه برنامه خودمون
(البته مقدارش اونقدر کم هست که اصلا محسوس نیست... دقیقا نمیدونم ولی شاید کلا 4 بایت باشه...)
Set excelWB = Nothing
Set xlApp = Nothing
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.