Excel 如何读取所有数据单元格并仅突出显示长度超过10个字符的单元格

Excel 如何读取所有数据单元格并仅突出显示长度超过10个字符的单元格,excel,vba,Excel,Vba,我需要读取所有包含条目的数据单元格,但我只需要突出显示该数据单元格中字符超过10的单元格 例如: 在A列中,我需要读取所有数据,但我的条件是需要突出显示包含超过10个字符的单元格 同样地,在B列中,我需要做同样的事情,但这里我需要突出显示包含超过12个字符的单元格 同样,我想为包含数据的所有列实现一个解决方案 请帮我解决这个问题 我尝试的代码: Sub Dendrinos2() Dim i As Long Dim lr As Long lr = Cells(Rows.C

我需要读取所有包含条目的数据单元格,但我只需要突出显示该数据单元格中字符超过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
Sub-Dendrinos2()
我想我会坚持多久
变暗lr为长
lr=单元格(Rows.Count,5).结束(xlUp).行
对于i=lr至2步骤-1
如果范围(“C”和i).Value>6,则范围(“C”和i).Interior.ColorIndex=3
如果范围(“G”&i).Value>3,则范围(“G”&i).Interior.ColorIndex=3
如果Range(“I”&I).Value>3,则Range(“I”&I).Interior.ColorIndex=3
如果范围(“C”和i).Value<-3,则范围(“C”和i).Interior.ColorIndex=3
如果范围(“G”和i).Value<-3,则范围(“G”和i).Interior.ColorIndex=3
如果范围(“I”和I).Value<-3,则范围(“I”和I).Interior.ColorIndex=3
如果Range(“E”&i).Value=“--”,则Range(“E”&i).Interior.ColorIndex=Range(“A”&i).Interior.ColorIndex
如果范围(“G”和i).Value=“--”,则范围(“G”和i).Interior.ColorIndex=范围(“A”和i).Interior.ColorIndex
如果Range(“I”&I).Value=“--”,则Range(“I”&I).Interior.ColorIndex=Range(“A”&I).Interior.ColorIndex
接下来我
端接头

使用包含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

我会这样做:

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
Sub-Dendrinos2()
我想我会坚持多久
变暗lr为长
将sht变暗为工作表
设置sht=ActiveSheet
lr=短小单元格(短小行数,5)。结束(xlUp)。行
对于i=lr至2步骤-1
检查长度短范围(“A”和i),10
检查长度短范围(“B”和i),12
检查限值短范围(“C”和i),-3,6
检查限值短范围(“G”和i),-3,3
检查限值短范围(“I”和I),-3,3
复选框短范围(“E”和“i”),短范围(“A”和“i”)
勾选短划线短程范围(“G”和i)、短程范围(“A”和i)
复选框短范围(“I”和“I”)、短范围(“A”和“I”)
接下来我
端接头
次级检查限值(c为量程、ll、ul)
用c
如果.Valueul,则.Interior.ColorIndex=3
以
端接头
子虚线(c作为范围,cA作为范围)
用c
如果.Value=“--”则
.Interior.ColorIndex=cA.Interior.ColorIndex
如果结束
以
端接头
子校验长度(c为范围,l为长度)
用c
如果Len(.Value)>l,则.Interior.ColorIndex=3
以
端接头

是否要使用代码执行此操作?然后发布到目前为止您已经编写的代码。如果您不想使用代码,可以使用条件格式,但这种问题属于Superuser.com,而不是这里。请在问题关闭之前,先接受,然后编辑您的问题以使其更好。您可以使用条件格式进行此操作<代码>长度(范围)>10用于
列A
长度(范围)>12
用于
列B
。然后,只需将规则应用于相关范围。但我会避免在整列中应用此规则。不,我需要一个代码来执行此操作,我已经通过条件转发完成了此操作。那么,到底是什么阻止了您执行此操作?如果你根本不懂任何VBA,这里就不是你提问的地方:如果你懂一些VBA,那就开始吧,遇到问题时就发布你的代码。谢谢你的及时回复。我希望你现在了解了我的期望,你能分享一下你在这个场景中的代码吗?谢谢你的代码,它确实起作用了,但是在我的B列中,我有一些字符串与数字和spl字符混合在一起,这些东西没有突出显示字符+数字(即RAT12342312)(RAT/expsa/moreetc)请粘贴这个数据(DATA0069642,DATA0069964)请在A或B上复制相同的内容,并确认它是否正常工作。如果我需要检查单个列上字符串的长度,我可以怎么做?例如,我应该在所有A列上有12个字符,在B列上有10个字符,在c列上有7个字符,依此类推。请编辑您的代码以满足此要求。提前谢谢。