Как прочитать все ячейки данных и выделить только те ячейки, которые имеют более 10 символов - PullRequest
0 голосов
/ 29 января 2019

Мне нужно прочитать все ячейки данных, в которых есть записи, но мне нужно только выделить ячейки, в которых в этой ячейке содержится символ больше 10.

Например:

В столбце A мне нужно прочитать все данные, но мое условие заключается в том, что мне нужно выделить ячейку, которая содержит более 10 символов.

Аналогично, в столбце B мне нужно сделать то же самое, но здесь янужно выделить ячейку, которая содержит более 12 символов.

Аналогично, я хочу реализовать одно решение для всех столбцов, содержащих данные.

Пожалуйста, помогите мне разрешить это.

Код, который я пробовал:

Sub Dendrinos2()
    Dim i As Long
    Dim lr As Long

    lr = Cells(Rows.Count, 5).End(xlUp).Row

    For i = lr To 2 Step -1
        If Range("C" & i).Value > 6 Then Range("C" & i).Interior.ColorIndex = 3
        If Range("G" & i).Value > 3 Then Range("G" & i).Interior.ColorIndex = 3
        If Range("I" & i).Value > 3 Then Range("I" & i).Interior.ColorIndex = 3
        If Range("C" & i).Value < -3 Then Range("C" & i).Interior.ColorIndex = 3
        If Range("G" & i).Value < -3 Then Range("G" & i).Interior.ColorIndex = 3
        If Range("I" & i).Value < -3 Then Range("I" & i).Interior.ColorIndex = 3
        If Range("E" & i).Value = "--" Then Range("E" & i).Interior.ColorIndex = Range("A" & i).Interior.ColorIndex
        If Range("G" & i).Value = "--" Then Range("G" & i).Interior.ColorIndex = Range("A" & i).Interior.ColorIndex
        If Range("I" & i).Value = "--" Then Range("I" & i).Interior.ColorIndex = Range("A" & i).Interior.ColorIndex  
    Next i
End Sub

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Я бы сделал что-то вроде этого:

Sub Dendrinos2()
    Dim i As Long
    Dim lr As Long
    Dim sht As Worksheet

    Set sht = ActiveSheet
    lr = sht.Cells(sht.Rows.Count, 5).End(xlUp).Row

    For i = lr To 2 Step -1
        Checklength sht.Range("A" & i), 10
        Checklength sht.Range("B" & i), 12
        CheckLimits sht.Range("C" & i), -3, 6
        CheckLimits sht.Range("G" & i), -3, 3
        CheckLimits sht.Range("I" & i), -3, 3
        CheckDashes sht.Range("E" & i), sht.Range("A" & i)
        CheckDashes sht.Range("G" & i), sht.Range("A" & i)
        CheckDashes sht.Range("I" & i), sht.Range("A" & i)
    Next i

End Sub

Sub CheckLimits(c As Range, ll, ul)
    With c
        If .Value < ll Or .Value > ul Then .Interior.ColorIndex = 3
    End With
End Sub

Sub CheckDashes(c As Range, cA As Range)
    With c
        If .Value = "--" Then
            .Interior.ColorIndex = cA.Interior.ColorIndex
        End If
    End With
End Sub

Sub Checklength(c As Range, l As Long)
    With c
        If Len(.Value) > l Then .Interior.ColorIndex = 3
    End With
End Sub
0 голосов
/ 29 января 2019

Используйте условное форматирование с простой формулой, которая охватывает столбцы A и B.

Sub highlightLength()
    With Worksheets("sheet3")
        With .Range("A:B")
            .FormatConditions.Delete
            .FormatConditions.Add Type:=xlExpression, Formula1:="=len(a1)>(column(a1)+4)*2"
            With .FormatConditions(.FormatConditions.Count)
                .Interior.Color = vbYellow
            End With
        End With
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...