处理事件“Excel正在closures”

我有一个vb .net应用程序打开一个Excel文件,并在其中放置值。 但是,如果用户(我不得不承认是非常愚蠢的:)),closures工作簿,下次我的应用程序将尝试将一个值的文件,它会显示一个错误,因为没有打开excel文件。

我怎样才能防止excel被closures,或者当excelclosures时禁用button?

我正在使用Windows 7上的Excel 2003

编辑:这里是打开Excel的代码

Private Sub Open_button_Click(sender As Object, e As EventArgs) Handles Open_button.Click OpenFileDialog1.FileName = "" OpenFileDialog1.Filter = "Excel files (*.xls)|*.xls" OpenFileDialog1.ShowDialog() filePath = OpenFileDialog1.FileName If System.IO.File.Exists(filePath) Then oExcel = CreateObject("Excel.Application") oExcel.Visible = True oBook = oExcel.Workbooks.Open(filePath) oSheet = oBook.WorkSheets(1) oExcel.Sheets(1).Select() oExcel.ScreenUpdating = True xlDown = Microsoft.Office.Interop.Excel.XlDirection.xlDown xlUp = Microsoft.Office.Interop.Excel.XlDirection.xlUp Me.Activate() End If End Sub 

您可以添加事件处理程序来检测closures事件并禁用处理程序中的button。 从https://support.microsoft.com/en-us/kb/822750

 Private EventDel_BeforeBookClose As Excel.AppEvents_WorkbookBeforeCloseEventHandler 

然后在创buildExcel对象之后

 EventDel_BeforeBookClose = New Excel.AppEvents_WorkbookBeforeCloseEventHandler( _ AddressOf BeforeBookClose) AddHandler xlApp.WorkbookBeforeClose, EventDel_BeforeBookClose 

并添加一个子来处理事件

 Private Sub BeforeBookClose(ByVal Wb As Excel.Workbook, ByRef Cancel As Boolean)