El uso de vba para crear un mapa de hoja de cálculo

¿Alguna vez ha tratado de dar sentido a una desconocida (y complicado) libro de Excel? Sería de gran ayuda para ver un mapa que ofrece una visión general de que las células contienen constantes y que las células contienen valores.

Puede crear una utilidad de VBA que genera un mapa de la hoja de cálculo activa. El mapa se genera en una nueva hoja de cálculo, y se compone de células codificadas por colores que le permiten identificar rápidamente los valores, texto y fórmulas.

A continuación, puede ver un ejemplo de un mapa de este tipo. Las células que contienen texto son de color verde, aquellos que contienen un valor numérico son de color amarillo, y las células que contienen fórmulas son rojos. Dicho mapa puede ayudar a detectar posibles errores. Por ejemplo, si una fórmula en un bloque de fórmulas se ha sobrescrito por un valor, esa célula se destacará en la vista de mapa (como en Q11 celular en el ejemplo).

El código VBA QuickMap

El procedimiento de VBA que genera el mapa de hoja de trabajo se enumeran a continuación. Si desea utilizar esta utilidad, sólo tienes que copiar el código y pegarlo en un módulo de VBA. A continuación, activar una hoja de cálculo y ejecutar la subrutina QuickMap.

Video: Hacer una hoja de cálculo Muy Oculta | VBA MACROS | Excel Aprende

Sub QuickMap () FormulaCells dévil como TextCells VariantDim Como NumberCells VariantDim como el área VariantDim Como RangeIf TypeName (ActiveSheet) lt; gt; “Hoja de trabajo” Entonces Exit Sub` Crear variables de objeto de celda subsetsOn Error Resume NextSet FormulaCells = Range ( ‘A1’). SpecialCells _ (xlFormulas, xlNumbers + xlTextValues ​​+ xlLogical) Set TextCells = Range ( ‘A1’). SpecialCells (xlConstants, xlTextValues) Set NumberCells = Range ( “A1”). SpecialCells (xlConstants, xlNumbers) On Error Goto 0` Agregar una nueva hoja y el formato itSheets.AddWith Cells.ColumnWidth = = 2.Font.Size 8.HorizontalAlignment = xlCenterEnd WithApplication.ScreenUpdating = False `hacer la fórmula cellsIf No IsEmpty (FormulaCells) ThenFor cada área FormulaCells.AreasWith ActiveSheet.Range (Area.Address) .Value = ‘F’ .Interior.ColorIndex = 3End WithNext AreaEnd Si` hacer el texto cellsIf No IsEmpty ( TextCells) ThenFor cada área TextCells.AreasWith ActiveSheet.Range (Area.Address) .Value = “T” .Interior.ColorIndex = 4End WithNext AreaEnd Si` hacer lo numérico cellsIf No IsEmpty (NumberCells) ThenFor cada área NumberCells.AreasWith ActiveSheet .Range (Area.Addre ss) .Value = “N” .Interior.ColorIndex = 6End WithNext AreaEnd IfEnd Sub

Cómo funciona

El procedimiento comprueba en primer lugar para asegurarse de que la hoja activa es una hoja de trabajo. Si no es así, hay una salida rápida con ninguna otra acción. Cuando la hoja activa es una hoja de cálculo, el procedimiento crea tres variables de objeto mediante el uso de la SpecialCells método para identificar los diferentes tipos de células. los SpecialCells método es muy útil. Si no está familiarizado con ella, comprobar que funciona en el archivo de ayuda en línea de Excel. Observe el uso de On Error Resume Next. Esto es para evitar el error que se produce cuando no hay células calificar - por ejemplo, si la hoja no tiene fórmulas.

A continuación, el procedimiento agrega una nueva hoja de trabajo, reduce el ancho de la celda, y establece la alineación horizontal al centro. Este paso es cosmético. El sub continuación, desactiva la actualización de la pantalla para acelerar las cosas un poco.

Los siguientes tres bloques de código de proceso de las células. Si no hay células califican, la variable de objeto está vacío, por lo que las pruebas de este sub. A continuación, los bucles de rutina a través de cada área en el objeto Range y formatos de la célula. Usted puede modificar fácilmente esta parte de la subrutina para aplicar formato diferente.

Revisar la Energía de la red Pak add-in para una versión mucho más sofisticada de esta utilidad.

Artículos Relacionados