PDA

View Full Version : سوال: بسته نشدن اکسل در قسمت .Processes ،Windows task manage



boveiryghasem
سه شنبه 30 خرداد 1391, 14:00 عصر
درود بر شما.


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



Imports Microsoft.Office.Interop.Excel

Public Class Form1

Dim objExcel As New Microsoft.Office.Interop.Excel.Application

Dim objWorkB As Workbook

Dim objWorkS As Worksheet



بعد توی رویداد کلیلک Button1_Click اطلاعات رو میفرستم به اکسلم که با کد زیر بازش میکنم:



objExcel.Workbooks.Open("D:\Ti_Checklist.xlsx")
objWorkB = objExcel.Workbooks(1)
objWorkS = objWorkB.Sheets("Sheet1")


با کد زیر هم وقتی کارم تموم شد اکسل رو میبندم ولی هنوز توی قمست Processes ،Windows task manager فایل اکسلم باز هستش البته Error نمیگیره وقبلش هم ذخیرش میکنم ولی چرا بسته نمیشه.؟


Try
obj = Nothing
Catch ex As Exception
obj = Nothing
Finally
GC.Collect()
End Try

boveiryghasem
سه شنبه 30 خرداد 1391, 14:10 عصر
البته کد هایی که اولش گذاشتم اونطوری پشت سر هم نیستن اشتباه وارد کردم

Imports Microsoft.Office.Interop.Excel
Public Class Form1
Dim objExcel As New Microsoft.Office.Interop.Excel.Application
Dim objWorkB As Workbook
Dim objWorkS As Worksheet

مهرداد صفا
جمعه 30 تیر 1391, 22:08 عصر
با سلام
معمولا در زمان کار کردن با برنامه های office چنین مشکلی پیش می آید.
به طور کلی برای بستن یک process میتوان به صورت زیر عمل کرد




Sub CloseExcel()
For Each Process As System.Diagnostics.Process In System.Diagnostics.Process.GetProcessesByName("excel")
Process.Close()
Next
End Sub



متود GetProcessesByName عضو shared شده کلاس process است و میتوان به طور مستقیم آن را فراخوانی و اجرا کرد که حاصل آرایه ایست از process که در حلقه همه آنها را میبندیم.
موفق باشید!