Solución:
Tengo el mismo error en esta línea
Object temp = range.Cells[i][0].Value;
Resuelto con un índice de base distinta de cero
Object temp = range.Cells[i][1].Value;
¿Cómo es posible que los chicos que crearon esta biblioteca pensaran que era una buena idea utilizar la indexación basada en valores distintos de cero?
Este es un error COM de Excel común pero mal documentado. Lo he visto documentado como “NAME_NOT_FOUND”, lo que significa que la capa COM de Excel está deshabilitada y no puede encontrar la propiedad COM o el nombre del método.
Recibo este error constantemente cuando ejecuto el código COM mientras Excel está ‘ocupado’, por ejemplo, si configura un temporizador que iniciará el código y el código comienza a ejecutarse mientras el usuario está editando una celda o presionando el botón del mouse, entonces siempre obtendrá este error. Este error solo ocurre cuando el código se ejecuta en el subproceso principal de Excel, pero parece ser el equivalente al error VBA_E_IGNORE = 0x800AC472, que se obtiene al llamar al modelo de objetos COM de Excel desde otro subproceso, mientras que Excel está ‘ocupado’.
La única solución parece ser volver a intentar (con un pequeño retraso) la llamada COM hasta que se realice correctamente, cuando Excel ya no está “ocupado”.
Verifique sus índices de inicio. Su comienzo desde 1 no 0 para objetos de rango Microsoft.Office.Interop.Excel. Había recibido el mismo error debido a mi valor de inicio de bucle.