Abrir una hoja de cálculo con fórmulas rotas

Abrir una hoja de cálculo con fórmulas rotas

Estoy usando código para generar una hoja de cálculo, incluida una fórmula para una celda en ciertas filas. Cuando hago esto, hay algún problema con la fórmula y cuando intento abrir la hoja de cálculo, Excel me pregunta si debe reparar la hoja. Si digo que sí, lo hace eliminando todos los rastros de mi fórmula de la hoja. Si digo que no, no termina de abrir la hoja.

¿Hay alguna manera de abrir la hoja de cálculo sin repararla, para poder examinar la fórmula tal como la genera mi código? Si copio y pego la fórmula en una de las celdas de las que se eliminó, funciona bien. Realmente necesito ver qué está mal con la fórmula en mi hoja generada cuando la abro. ¿Hay alguna manera de hacer esto?

Estoy agregando la fórmula usando el siguiente código en la biblioteca EPPlus Excel:

for (var r = startAt + 2; r < endAt; r++)
{
    var amountFormula =
        $@"=SWITCH(C{r}; ISBLANK(D{r}); """"; ""Percentage""; IF(ISNUMBER(D{r}); D{r}; 0) * IF(ISNUMBER(E{r}); E{r}; 0) / 100; IF(ISNUMBER(D{r}); D{r}; 0) * IF(ISNUMBER(E{r}); E{r}; 0))";
    ws.Cells[$"F{r}"].Formula = amountFormula;
}

Tenga en cuenta que esta fórmula funciona si la reemplazo {r}con un número de fila adecuado y pego la fórmula en la hoja.

Respuesta1

Excel pregunta si debe reparar la hoja. Si digo que sí, lo hace eliminando todos los rastros de mi fórmula de la hoja. Si digo que no, no termina de abrir la hoja.

Creo que has probado todas tus opciones aquí.

Una solución alternativa puede ser insertar su fórmula en la celda como texto ( ws.Cells[$"F{r}"].Value = amountFormula;), luego podrá abrir su hoja y examinar su fórmula.

(Si Excel aún se queja de su fórmula, incluso puede agregar un precedente ':)ws.Cells[$"F{r}"].Value = "'" & amountFormula;

información relacionada