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 根据日期筛选数据的主要内容,如果未能解决你的问题,请参考以下文章