Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String VBA如果单元格中的前6个字符不等于01/01/01,则_String_Vba_Excel_Colors - Fatal编程技术网

String VBA如果单元格中的前6个字符不等于01/01/01,则

String VBA如果单元格中的前6个字符不等于01/01/01,则,string,vba,excel,colors,String,Vba,Excel,Colors,我希望你能帮忙。我在下面有一段代码,它似乎工作不正常 我想让代码做的是 如果L列全长中任何单元格的前6个字符不包含01/01/,则使用内部颜色27高亮显示该单元格 目前,正如您在屏幕截图1中看到的,列L中的每个单元格都用内部颜色27高亮显示,只有单元格L2和L5应该着色 我的代码在下面,是否可以修改为仅突出显示不包含01/01/的单元格,作为L列的前6个字符 >PS条件格式方法不是一个选项 一如既往,我们非常感谢您的帮助 截图1 我的代码 Sub Colour_If() RowCoun

我希望你能帮忙。我在下面有一段代码,它似乎工作不正常

我想让代码做的是

如果L列全长中任何单元格的前6个字符不包含01/01/,则使用内部颜色27高亮显示该单元格

目前,正如您在屏幕截图1中看到的,列L中的每个单元格都用内部颜色27高亮显示,只有单元格L2和L5应该着色

我的代码在下面,是否可以修改为仅突出显示不包含01/01/的单元格,作为L列的前6个字符

>PS条件格式方法不是一个选项

一如既往,我们非常感谢您的帮助

截图1

我的代码

Sub Colour_If()
    RowCount = Cells(Cells.Rows.Count, "L").End(xlUp).Row
    For Each n In Range("L2:L" & RowCount)
        n = Left(n, 6)
        If n <> "01/01/" Then
        Range("L2:L" & RowCount).Interior.ColorIndex = 24

        End If
    Next n
End Sub
Sub-color\u If()
RowCount=单元格(Cells.Rows.Count,“L”)。结束(xlUp)。行
对于范围内的每个n(“L2:L”和行计数)
n=左(n,6)
如果n“01/01/”则
范围(“L2:L”和行数)。Interior.ColorIndex=24
如果结束
下一个
端接头
改用这个:

Sub Colour_If()

lRow = Cells(Rows.Count, 12).End(xlUp).Row

For i = 2 To lRow
If Left(Cells(i, 12), 6) <> "01/01/" Then
Cells(i, 12).Interior.ColorIndex = 24
Else
End If
Next i

End Sub
Sub-color\u If()
lRow=单元格(Rows.Count,12).结束(xlUp).行
对于i=2至lRow
如果左(单元格(i,12),6)“01/01/”则
单元格(i,12)。Interior.ColorIndex=24
其他的
如果结束
接下来我
端接头
子颜色
将sht变暗为工作表
暗行数与长行数相同
设置sht=工作表(“表1”)
RowCount=单元格(Cells.Rows.Count,“L”)。结束(xlUp)。行
对于i=2的行计数
用短发
n=左(.i,12)单元格。值,6)
如果n“01/01/”则
.Cells(i,12).Interior.ColorIndex=24
其他的
.Cells(i,12).Interior.ColorIndex=0
如果结束
以
接下来我
端接头

在处理日期时,它可能会变得有点棘手,我使用了
Like
运算符和通配符
*
,并读取单元格的
Text
属性

Option Explicit

Sub Colour_If()

    Dim RowCount As Long
    Dim n As Range

    ' always define your worksheet, don't rely on ActiveSheet
    With Worksheets("YourSheetName") '<-- modify to your sheet's name
        RowCount = .Cells(.Rows.Count, "L").End(xlUp).Row
        For Each n In .Range("L2:L" & RowCount)
            If Not n.Text Like "01/01/*" Then ' check that the first 6 characters do not start with "01/01/"
                n.Interior.ColorIndex = 24
            End If
        Next n
    End With

End Sub
选项显式
子颜色_If()
暗行数与长行数相同
调光范围
'始终定义工作表,不要依赖ActiveSheet

对于工作表(“YourSheetName”),您的问题就在这里:
范围(“L2:L”和行数)。Interior.ColorIndex=24
。一旦你为整个柱着色,它就符合条件。见下面的答案。12指“L”列。我是排号。它将遍历每一行,直到最后一行的L列中有数据。更明确地说,在sub下的代码顶部,您可以添加
Dim lRow as Long
Dim i as Long
。嗨,KoderM16感谢您花时间回复。非常感谢。我已经接受了谢的答案,因为它的工作,是第一个回应。再次感谢您的支持:-)我希望您有一个美好的一天。@PhilipConnell cool buddy。很高兴你得到了你需要的帮助。干杯!:-)再次感谢你,谢。这很好用:-)都柏林非常尊敬:-)嗨。UGP非常感谢您花时间回复。你的代码运行得很好,但Shai是第一个,在过去帮助过我。再次感谢:-)我祝你有一个美好的一天:-)
Option Explicit

Sub Colour_If()

    Dim RowCount As Long
    Dim n As Range

    ' always define your worksheet, don't rely on ActiveSheet
    With Worksheets("YourSheetName") '<-- modify to your sheet's name
        RowCount = .Cells(.Rows.Count, "L").End(xlUp).Row
        For Each n In .Range("L2:L" & RowCount)
            If Not n.Text Like "01/01/*" Then ' check that the first 6 characters do not start with "01/01/"
                n.Interior.ColorIndex = 24
            End If
        Next n
    End With

End Sub