Excel не может завершить работу, пока все его внепроцессные объекты не будут освобождены.Так что он просто скрывает свой пользовательский интерфейс и продолжает работать.Пока ваша программа не закроется или вы не обнулите все ссылки на объекты Excel и поток финализатора не запустится.Выход из вашей программы будет очевидным решением.Или вы можете принудительно запустить поток финализатора:
GC.Collect();
GC.WaitForPendingFinalizers();
ReleaseComObject () редко работает, потому что так легко забыть промежуточную ссылку на COM-объект.Как и WorkBooks [index], это перечислитель, которого вы не видите.Позволить GC принять это решение для себя было бы более разумным выбором, если вы продолжите работать и выполнять работу, то это произойдет.