Este tutorial demostrará cómo usar VBA para resaltar una celda o un rango de celdas.
El formato condicional es una forma de resaltar celdas en Excel. También podemos usar VBA para realizar el resaltado de celdas.
Resaltar una celda
Para resaltar una celda en VBA, podemos usar el procedimiento simple como se muestra a continuación.
123 | Sub HighlightCell ()ActiveCell.Interior.Color = vbRedEnd Sub |
Resalte un rango de celdas
Del mismo modo, podemos seleccionar un rango de celdas y resaltar todas las celdas en el rango.
1234 | Sub HighlightRange ()Rango ("A1: A10"). SeleccionaSelection.Interior.Color = vbRedEnd Sub |
Resaltar celdas según el valor de celda
Para agregar una condición para resaltar una celda, podemos usar una instrucción IF para resaltar la celda si el valor de la celda está por encima de un cierto valor, en este caso mayor que 10.
12345 | Sub HightlightCell_1Si ActiveCell.Value> 10 entoncesActiveCell.Interior.Color = vbRedTerminara siEnd Sub |
Resalte un rango de celdas según el valor de la celda
Para verificar los valores en un rango de celdas, necesitaríamos recorrer cada celda, establecer su valor y luego resaltar la celda en consecuencia. En el siguiente ejemplo, primero estableceremos que el valor contenido en el rango es un número y luego probaremos para ver si ese número es mayor que 10.
12345678910 | Sub HighlightRangeOfCells ()Atenuar como rangoPara cada rng en rango ("A1: A10")If IsNumeric (rng.Value) EntoncesSi rng.Value> 10 Entoncesrng.Interior.Color = vbRedTerminara siTerminara siSiguiente rngEnd Sub |
Resaltar una celda con formato condicional
También podemos usar VBA para aplicar formato condicional a una celda para resaltar la celda. En el siguiente ejemplo, se aplicará formato condicional a cada celda del rango. Como en el ejemplo anterior, primero probamos que la celda tenga un valor numérico y luego aplicamos el formato condicional.
12345678910 | Sub SetConditionalFormatting ()Atenuar como rangoPara cada rng en rango ("A1: A10")If IsNumeric (rng.Value) Entoncesrng.FormatConditions.Add Tipo: = xlCellValue, Operador: = xlGreater, Formula1: = "= 10"rng.FormatConditions (1) .Interior.Color = vbRedrng.FormatConditions (1) .StopIfTrue = FalseTerminara siSiguiente rngEnd Sub |
Resaltar una celda cuando cambia la selección
Podemos hacer que el resaltado de una celda sea dinámico cuando el puntero de la celda se mueve en la hoja de trabajo actual usando el evento Worksheet_Change. En el siguiente ejemplo, se eliminarán todos los resaltados de la hoja (excepto los realizados mediante formato condicional) y la celda activa se resaltará en rojo (ColorIndex = 3).
1234 | Private Sub Worksheet_SelectionChange (ByVal Target As Range)ActiveSheet.Cells.Interior.ColorIndex = xlColorIndexNoneTarget.Interior.ColorIndex = 3End Sub |