Joe usa la función EOMONTH con bastante frecuencia, pero desde que pasó a Excel 2007, ha tenido problemas. Joe tiene las herramientas de análisis activa y la función EOMONTH funciona, al principio. Sin embargo, cuando guarda su libro de trabajo y lo abre más tarde, las celdas que contienen la función EOMONTH se ven bien hasta que hace clic en ellas. Luego, la barra de fórmulas muestra # N / A. La fórmula ha desaparecido. Analysis ToolPak todavía está activo cuando esto sucede. Esto no sucede en todas las ocasiones, pero es demasiado frecuente para ignorarlo. Además, Joe tiene un colega que está experimentando el mismo problema con sus libros de trabajo.

Este problema con EOMONTH aparentemente ocurre debido a cambios realizados en la función EOMONTH en versiones posteriores de Excel (Excel 2007 y posteriores).

En versiones anteriores de Excel (Excel 2003 y anteriores), EOMONTH era parte de Analysis ToolPak. En las versiones posteriores de Excel, ToolPak ya no es necesario; la función es parte del propio Excel. En otras palabras, no es necesario tener activado el paquete de herramientas de análisis para utilizar EOMONTH.

Esto conduce al problema. Si tiene un libro creado en una versión anterior de Excel y lo abre usando el modo de compatibilidad en una versión posterior de Excel, se evalúan las fórmulas del libro y, en algunas circunstancias, se actualizan los «tokens» internos utilizados para las funciones.

Cuando el libro de trabajo se guarda y se vuelve a sacar, el token actualizado se almacena en el libro de trabajo y, cuando se vuelve a cargar el libro, el token ahora apunta a lo que Excel interpreta como una función no válida.

Microsoft no ha publicado nada en su base de conocimientos sobre este error hasta el momento. El problema parece ser intermitente (como señaló Joe) y afecta a un libro de trabajo solo después de que haya pasado por entre cuatro y ocho ciclos de abrir / editar / guardar.

La solución es abrir el libro de trabajo y, si el problema no se manifiesta, use Guardar como para guardar el libro en formato nativo de Excel.

(Bueno, en el formato de Excel nativo de Excel 2007 hasta versiones posteriores de Excel). Dado que el modo de compatibilidad no está involucrado a partir de ese momento, el problema no debería ocurrir nuevamente. Si el problema se manifiesta, deberá corregir y reconstruir el libro.

Si no puede guardar el libro de trabajo en el formato nativo actual de Excel (tal vez necesite usar el formato anterior de Excel para trabajar con otros que no han actualizado su programa), entonces debería considerar no depender de la función EOMONTH . En su lugar, use una fórmula como cualquiera de las siguientes:

=A1+31-DAY(A1+31)

=DATE(YEAR(A1),MONTH(A1)+1,1)-1

Si lo prefiere, puede crear su propia función definida por el usuario para calcular el último día de un mes. El siguiente es un enfoque:

Function LastOfMonth(Any_Date As Date) As Date     ' Returns the date of the last day of     ' the month of the passed date argument

LastOfMonth = DateAdd("d", -1, _       DateAdd("m", 1, Month(Any_Date) _       & "/1/" & Year(Any_Date)))

End Function

Querrá asegurarse de pasar a la función una fecha válida, ya sea haciendo referencia a una fecha en una celda o encerrando una fecha literal entre comillas. Suponiendo que la celda B7 contiene la fecha 15/10/18, los dos siguientes devolverán el mismo resultado:

=LastOfMonth(B7)

=LastOfMonth("10/15/2018")

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (6613) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365.