因此,我正在尝试定义一个或多个变量,以便可以轻松过滤数据集。本质上,我需要按数据集中的日期/时间进行过滤。数据集中日期和时间的格式如下:2019-01-03 8:45:30 PM
我想要做的是定义一个变量,以便始终根据当前日期过滤数据。我的数据每天都在变化,因此我的参考点是今天的日期。从本质上讲,我需要过滤从2天前上午11点到昨天上午10点为止的数据。我将如何定义变量?我尝试执行以下操作:
Dim StandardH As Date
StandardH = Date - 1 + (1 / 24)
直到上午10点一直执行相同的操作,一直执行-(1/24)至上午11点,但这似乎不起作用。
我意识到可能有一种更简单的方法。有什么想法吗?
谢谢
答案 0 :(得分:1)
在VBA中:
Date - 2 + TimeSerial(11, 0, 0)
Date - 1 + TimeSerial(10, 0, 0)
这与代码运行的日期和时间有关,并假设“ 2天前”是指“昨天前一天”。
如果我在"Sheet4"
上有一些"B7:B17"
范围内的日期(假设单元格B6
中有一个标题),那么我想我可以使用下面的代码从(并包括)2天前的11 AM,直到(包括)昨天的10 AM:
Option Explicit
Sub FilterDatesInclusively()
With ThisWorkbook.Worksheets("Sheet4")
.AutoFilterMode = False
Dim fromDate As Date
fromDate = Date - 2 + TimeSerial(11, 0, 0)
Dim toDate As Date
toDate = Date - 1 + TimeSerial(10, 0, 0)
.Range("B6:B17").AutoFilter Field:=1, Criteria1:=">=" & CDbl(fromDate), Operator:=xlAnd, Criteria2:="<=" & CDbl(toDate)
End With
End Sub
也许有一些不转换为两倍的过滤方法,但我无法解决。