VBA 根据日期筛选数据

Posted fighting18

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VBA 根据日期筛选数据相关的知识,希望对你有一定的参考价值。

筛选两个日期间的全部数据

Dim a, b, c
a = Format(Date, "yyyy/m") '当前年月日

MsgBox a  '显示日期时间

'当前月份加4
b = DateAdd("m", 4, a)

Debug.Print b

Dim Rng As Range, arr As Variant
Dim EndRow As Long, EndCol As Long
Dim Rngtime As Range
With Sheets("PM")

     '获取A列最后一行(非空行)的行号
        EndRow = .Cells(.Cells.Rows.Count, 1).End(xlUp).Row
       
        '获取第一行最后一列(非空列)的列号
        EndCol = .Cells(1, .Cells.Columns.Count).End(xlToLeft).Column
       
        '保存数据
        Set Rng = .Range(.Cells(1, 1), .Cells(EndRow, EndCol))
        '存入数组
        arr = Rng.Value
        'end time
'        Set Rngtime = .Range(.Cells(1, 3), .Cells(EndRow, 3))
 End With
       
        
        
'    循环筛选符合条件的数据
'
'    重新声明数组,用于保存筛选出来的数据
    ReDim Brr(1 To EndCol, 1 To 1)
'    初始化筛选结果的数量
    n = 0
    For i = LBound(arr) + 1 To UBound(arr)
        If DateDiff("m", a, CDate(arr(i, 3))) >= 0 And DateDiff("m", CDate(arr(i, 3)), b) > 0 Then
            '时间在 Arr=Rng.Value的时候已经自动转为TimeValue
            n = n + 1
            ReDim Preserve Brr(1 To EndCol, 1 To n)
            For j = 1 To EndCol
              Brr(j, n) = arr(i, j)
            Next j
        End If
    Next i

以上是关于VBA 根据日期筛选数据的主要内容,如果未能解决你的问题,请参考以下文章

VBA 根据日期筛选数据

用VBA筛选日期区间

如何用vba实现数据透视表自动筛选

VBA代码是实现筛选从当前时间起7天之内数据,但是运行后筛选不出来,不知道问题在哪里出错了

vba 运算速度慢怎么办?

用于自动筛选排序 SortFields 的 VBA 不使用其他列排序进行排序