Ken se pregunta si hay una función de hoja de trabajo que indique si el contenido de una celda está en negrita. Puede encontrar otras funciones informativas, como ISBLANK, pero no puede encontrar una que indique si la celda está en negrita.

No hay una función ISBOLD integrada en Excel. Hay una forma muy misteriosa de hacer esto sin recurrir a una macro, pero solo funciona con algunas versiones de Excel. Aparentemente, por ejemplo, este enfoque no funcionará con Office 365, ya que parece que Microsoft finalmente ha eliminado el soporte para él. Esta antigua función de Excel 4, llamada GET.CELL, funcionará con algunas versiones anteriores de Excel. Así es como lo usaría en una fórmula:

=IF(GET.CELL(20,A1), "Bold", "Not Bold")

La función GET.CELL devuelve True si al menos el primer carácter de la celda está en negrita.

Un mejor enfoque sería crear una función definida por el usuario en VBA que podría llamarse desde su hoja de trabajo. Aquí hay una versión simple de tal UDF:

Function CheckBold(cell As Range) As Boolean     Application.Volatile     CheckBold = cell.Font.Bold End Function

Para usarlo en su hoja de trabajo, lo haría de esta manera:

=IF(CheckBold(A1), "Bold", "Not Bold")

La función CheckBold solo se actualizará cuando se recalcula su hoja de trabajo, no si simplemente aplica formato de negrita o la elimina de la celda A1.

Este enfoque puede funcionar para la mayoría de los casos, pero debe comprender que la propiedad Negrita puede tener tres configuraciones posibles: Verdadero, Falso y Nulo. La propiedad se establece en False si ninguno de los caracteres de la celda está en negrita. Se establece en Verdadero si todos están en negrita. Finalmente, se establece en Nulo si solo algunos de los caracteres de la celda están en negrita. Si cree que podría encontrarse con esta situación, deberá modificar la función CheckBold:

Function CheckBold(cell As Range) As Integer     Dim iBold As Integer

Application.Volatile

iBold = 0     If IsNull(cell.Font.Bold) Then         iBold = 2     Else         If cell.Font.Bold Then iBold = 1     End If

CheckBold = iBold End Function

Tenga en cuenta que la función ahora devuelve un valor, de 0 a 2. Si devuelve 0, no hay negrita en la celda. Si devuelve 1, entonces toda la celda está en negrita. Si devuelve 2, entonces hay negrita parcial en la celda.

_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 (13733) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365.