Я прочитал много постов в поисках своего ответа, но все похожи на это:
Чтение файлов Excel в vb.net приводит к зависанию процесса Excel
Моя проблема в том, что я не закрываю приложение ...
Идея такова:
Если у пользователя есть Excel Open, если у него есть файл, который мне интересен, откройте ... получите этот экземпляр Excel и делайте все, что я хочу ...
Но я не закрываю его Файл после того, как я закончу ... Я хочу, чтобы он продолжал работать над ним, проблема в том, что когда он закрывает Excel ... Процесс продолжает работать ... и работает. .. и работает после того, как пользователь закрывает Excel кнопкой X ...
вот как я пытаюсь это сделать
Этот фрагмент используется, чтобы узнать, открыт ли у него Excel, и в поле «Я проверяю» интересующее меня имя файла.
Try
oApp = GetObject(, "Excel.Application")
libroAbierto = True
For Each libro As Microsoft.Office.Interop.Excel.Workbook In oApp.Workbooks
If libro.Name = EquipoASeccionIdSeccion.Text & ".xlsm" Then
Exit Try
End If
Next
libroAbierto = False
Catch ex As Exception
oApp = New Microsoft.Office.Interop.Excel.Application
End Try
вот мой код ... если у него не открыт Excel, я создаю новый экземпляр, открываю файл и все остальное.
Мой код заканчивается так:
If Not libroAbierto Then
libroSeccion.Close(SaveChanges:=True)
oApp.Quit()
Else
oApp.UserControl = True
libroSeccion.Save()
End If
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(libroOriginal)
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(libroSeccion)
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(origen)
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(copiada)
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(oApp)
libroOriginal = Nothing
libroSeccion = Nothing
oApp = Nothing
origen = Nothing
copiada = Nothing
nuevosGuardados = True
Таким образом, вы можете видеть, что, если я открыл файл, я вызываю oApp.Quit () и все остальное, и процесс Excel завершается через несколько секунд (возможно, примерно 5).
НО, если я имею в виду, что пользователь оставляет файл открытым (не вызывая Quit ()), процесс Excel продолжает работать после того, как пользователь закрывает Excel кнопкой X.
Есть ли способ сделать то, что я пытаюсь сделать ?? Управляйте открытым экземпляром Excel и освобождайте все, поэтому, когда пользователь закрывает его кнопкой X, процесс Excel обычно умирает ???
Спасибо !!!