PDA

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