.NET Excel 互操作 - 代码在文件打开后停止



我以前多次使用.Net excel集成,但从未见过这种行为。一旦我在 Wookbooks 集合对象中调用 Open 方法,所有未来的代码都无法在 sub 中执行。线程似乎挂起在 excel 应用程序上,但应用程序 UI 未冻结(或 excel)。

If(System.IO.File.Exists(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "MaterialCatalog.xlsx")) Then
        Dim excelApp As Microsoft.Office.Interop.Excel.Application
        excelApp = New Microsoft.Office.Interop.Excel.Application()
        excelApp.Visible = True
        Dim wb As Workbook
        Console.Out.Write("this appears in console")
        Dim path As String = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "MaterialCatalog.xlsx"
        wb = excelApp.Workbooks.Open(path)
        Console.Out.Write("past") 'continue other code
控制台

将写入"这出现在控制台中",而不是"过去"。任何想法为什么这可能会挂起?

谢谢

我解决了这个问题。我提高了 excel 对象的范围。

而不是:Dim excelApp As Microsoft.Office.Interop.Excel.Application

我将其公开并在子例程之外声明。

最新更新