我以前多次使用.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
我将其公开并在子例程之外声明。