vba判断筛选出的数据是否存在


vba判断筛选出的数据是否存在


 Public Sub 使用筛选按钮_查询没有账簿或年度为空的行()

   '--筛选异常数据

    Dim Hang As Long

    Dim ZhHang As Long

    Dim Lie As Long

    Dim ZhLie As Long

    '---计算最后行---jch01-05-数据源页签

    With Worksheets("jch01-05")

         ZhLie = .Cells(10, .Columns.Count).End(xlToLeft).Column          '--适合第10行为标题的格式(以第10行为标准,计算最后列)

    End With

    With Worksheets("jch01-05")

         ZhHang = 0

         For Lie = 1 To ZhLie

              If ZhHang < .Cells(.Rows.Count, Lie).End(xlUp).Row Then

                     ZhHang = .Cells(.Rows.Count, Lie).End(xlUp).Row

              End If

         Next

    End With

'--------------------------------------------------------

    '--增加筛选按钮

    With Worksheets("jch01-05")

            ZhLie = .Cells(10, .Columns.Count).End(xlToLeft).Column

           .AutoFilterMode = False                         '--如果存在筛选按钮,则取消筛选(这样所有数据就都出来了)

           .Rows("10:10").AutoFilter                       '--在指定区域增加自动筛选的按钮

    End With

    '--筛选为空的记录

    Lie = 1                                                '--指定要筛选的列号

    With Worksheets("jch01-05")

           .Range(.Cells(10, Lie), .Cells(ZhHang, Lie)).AutoFilter Field:=Lie, Criteria1:="="   '--变量Lie为指定要筛选的列号

           '--检查筛选结果是否为空

           If .AutoFilter.Range.SpecialCells(xlCellTypeVisible).Count = 0 Then

                 MsgBox "筛选结果为空"

           Else

                 MsgBox "筛选结果不为空"

           End If

    End With


End Sub