|
- Option Explicit
- Sub 筛选数据()
- On Error Resume Next '忽略错误
- Application.ScreenUpdating = False '关闭屏幕更新
- Dim arr As Variant
- Dim dic As Object
- Dim rng As Range
- Dim brr As Variant
- Dim i As Integer
- Dim j As Integer
- arr = Application.Transpose(Range(Cells(2, 2), Cells(2, 2).End(xlDown)).Value2) '获取B列数据存入数组
- Set dic = CreateObject("Scripting.Dictionary") '创建字典对象
- With ActiveSheet
- If .AutoFilterMode Then .AutoFilterMode = False '关闭自动筛选
- .Columns(1).AutoFilter field:=1, Criteria1:=arr, Operator:=xlFilterValues '根据B列数据在A列筛选数据
- For Each rng In .Cells(2, 5).CurrentRegion.SpecialCells(xlCellTypeVisible) '在第5列遍历筛选出的单元格
- dic.Add rng.Address, rng.Value '将筛选出的单元格地址和值存入字典对象
- Next rng
- brr = dic.keys '获取字典对象的键值
- .Columns(5).ClearFormats '清除第5列格式
- For i = 1 To UBound(brr) '遍历字典对象的键值
- If dic(brr(i)) - dic(brr(i - 1)) = 1 Or dic(brr(i + 1)) - dic(brr(i)) = 1 Then '判断是否连续
- Range(brr(i)).Interior.ThemeColor = 6 '设置连续单元格颜色
- Range(brr(i)).Font.Color = vbWhite '设置连续单元格字体颜色
- End If
- Next i
- End With
- Set dic = Nothing '释放字典对象
- Application.ScreenUpdating = True '恢复屏幕更新
- End Sub
复制代码
|
评分
-
1
查看全部评分
-
|