
Por ejemplo, hay 100 (fila) x 20 (columna) celdas en una hoja y cada celda tiene 5 líneas. Algunas líneas están en rojo, otras están marcadas con tachados, etc. ¿Cómo puedo buscar todas las líneas en rojo? ¿Cómo puedo encontrar todas las líneas tachadas? ¿Cómo puedo buscar solo por SearchFormat
?
Probé Excel find with format
, pero no funciona para parte de una celda. Si las 5 líneas están en rojo, puede encontrarlas; pero si sólo 2 líneas en rojo y otras 3 líneas son normales, no puede encontrar las 2 líneas, incluso cuando match entire cell contents
esnocomprobado.
Respuesta1
Necesitará una VBA
solución para esto:
Aquí hay una macro de muestra para comenzar, que busca en la hoja activa (comenzando en una celda a la derecha de la celda activa) celdas que contengan constantes de texto, luego busca el texto en la celda, un carácter a la vez, para Rojo. Se detiene y selecciona la primera celda que encuentra que contiene texto en rojo.
Sub FindColorInCells()
Dim n As Long
Dim i As Long, j As Long
Dim cl As Range
Dim r As Range
Set r = ActiveSheet.UsedRange
i = ActiveCell.Row - r.Row + 1
If i > r.Rows.Count Or i < 0 Then i = 1
j = ActiveCell.Column - r.Column + 1
If j > r.Columns.Count Or j < 0 Then j = 1
i = (r.Columns.Count * (i - 1) + j) Mod r.Cells.Count + 1
j = r.Cells.Count
Do While i <> j
With r(i)
If Not .HasFormula Then
If Len(.Value) > 0 Then
If TypeName(.Value) = "String" Then
For n = 1 To .Characters.Count
If .Characters(n, 1).Font.ColorIndex = 3 Then
' found red
.Select
Exit Sub
End If
Next
End If
End If
End If
End With
i = i Mod j + 1
Loop
End Sub