Processo do Excel ainda é executado após o fechamento em VB.net

Minha pergunta é basicamente como terminar o processo Excel.exe que é executado ao usar o Excel. No aplicativo eu abro e uso uma pasta de trabalho do Excel com algumas folhas e, em seguida, deixo para o usuário fazer o que quiser, meu problema é que meu aplicativo nunca deixa de ir ao processo do Excel.

Se o aplicativo for fechado antes de fechar o Excel, o processo termina quando o Excel é fechado, caso contrário, se eu fechar meu aplicativo depois de fechar o Excel, o processo continua em execução.

Eu tentei algumas coisas que eu encontrei em torno da internet para fazer com GC.collect e esperando por finalizadores pendentes ou algo nesse sentido no entanto nem funcionou.

Eu também posso fechar o processo de excel felizmente, o único problema é não saber se estou fechando uma planilha importante de usuários que eles negligenciaram salvar ainda ou minar.

Não tenho certeza se algum código meu ajudará com uma resposta, mas estou usando microsoft.office.interop.excel para chegar ao excel, e estou usando uma pasta de trabalho já salva na pasta de recursos do aplicativo.

-Editar-

Aqui está tudo que eu tentei, eu sei que é um pouco exagerado, mas infelizmente ainda não termina o processo

Marshal.ReleaseComObject(FirstWorksheet)
Marshal.FinalReleaseComObject(FirstWorksheet)
Marshal.ReleaseComObject(SecondWorksheet)
Marshal.FinalReleaseComObject(SecondWorksheet)
Marshal.ReleaseComObject(ThirdWorksheet)
Marshal.FinalReleaseComObject(ThirdWorksheet)
Marshal.ReleaseComObject(FourthWorkSheet)
Marshal.FinalReleaseComObject(FourthWorkSheet)
Marshal.ReleaseComObject(xlRange)
Marshal.FinalReleaseComObject(xlRange)
Marshal.ReleaseComObject(SecondxlRange)
Marshal.FinalReleaseComObject(SecondxlRange)
Marshal.ReleaseComObject(thirdxlRange)
Marshal.FinalReleaseComObject(thirdxlRange)
Marshal.ReleaseComObject(fourthxlRange)
Marshal.FinalReleaseComObject(fourthxlRange)
Marshal.ReleaseComObject(.activeworkbook)
Marshal.FinalReleaseComObject(.activeworkbook)
Marshal.ReleaseComObject(excelApplication)
Marshal.FinalReleaseComObject(excelApplication)
MSExcelControl.QuitExcel() 'A function made by someone else I work with that was meant to close excel's process
GC.Collect()
GC.WaitForPendingFinalizers()
GC.Collect()
GC.WaitForPendingFinalizers()

-Editar- Aqui está o método quitExcel

Friend Shared Sub QuitExcel()
    If Not getExcelProcessID = -1 Then
        If Not excelApp Is Nothing Then
            'Close and quit
            With excelApp
                Try
                    Do Until .Workbooks.Count = 0
                        'Close all open documents without saving
                        .Workbooks(1).Close(SaveChanges:=0)
                    Loop
                Catch exExcel As Exception
                    'Do nothing
                End Try
                Try
                    .ActiveWorkbook.Close(SaveChanges:=0)
                Catch ex As Exception
                    'Do nothing
                End Try

                Try
                    .Quit()
                Catch ex As Exception
                    'Do nothing
                Finally
                    myExcelProcessID = -1
                End Try
            End With
            excelApp = Nothing
        End If
    End If
End Sub

Ele já havia tentado fazer a mesma coisa com o ID do processo em sua aula, o problema era que ele não estava funcionando, e é por isso que eu tentei recuperar o ID do processo que funcionou.

questionAnswers(4)

yourAnswerToTheQuestion