vba-条件判断标记颜色+find和findnext查询用法

Sub 双条件判断()
Dim arr
Dim t As Date
t = #3/15/2021#
't = DateSerial(2021, 3, 15) '也可用这种标准写法
arr = Range("a2:b5")
For i = 1 To UBound(arr)
    If arr(i, 2) = "" And arr(i, 1) < t Then
        Range("a" & i + 1).Resize(1, 2).Interior.Color = RGB(Rnd() * 255, Rnd() * 255, Rnd() * 255)
    Else
        Range("a" & i + 1).Resize(1, 2).Interior.Pattern = xlNone '填充色为无色填充
    End If
Next
End Sub

find查询 用法

Sub 单元格查找()
'Find 和findnext配合查询
'find(what,after,lookin,lookat,searchorder,searchdirection,matchcase,matchbyte,searcformat)
'what '查什么
'after '从哪开始查 range 对象
'LookIn '查什么,xlcomments(批注),xlformulas(公式),xlvalues(值)
'lookat '怎么查  xlwhole(单元格内容与what完全一样),xlpart(与what部分一样)
'searchorder '查询顺序,按行还是按列 xlbyrows(行), xlbycolumns(列)
'searchdirection  '查询 方向,从上往下(xlnext)还是从下往上(xlprevious)
'MatchCase '是否区分大小写 true(区分),false(不区分)
'matchbyte '是否区域半角还是全角  true(区分),false(不区分)
'searchformat '匹配格式,查执行这个之前,需要对application.format 对象进行设置,这是一个只包含单元格格式设置的特殊对象
Dim str As String
Dim rng As Range
Set rng = Range("d2:d14").Find(2, lookat:=xlWhole) 'xlwhole为整体匹配,部分相同也不行
    If rng Is Nothing Then
        MsgBox "无此值"
    Else
        str = rng.Address
        Do
            rng.Interior.Color = RGB(Rnd() * 255, Rnd() * 255, Rnd() * 255)
            Set rng = Range("d2:d14").FindNext(rng)
        Loop Until rng.Address = str 'find和findnext 是循环查找,设置查了一圈后回到原点为退出
    End If
End Sub

 

posted on 2021-03-18 00:10  松梅  阅读(1981)  评论(0编辑  收藏  举报

导航