excel VBA:从包含多个日期和时间值的表中过滤出今天的值

问题描述 投票:0回答:1

我有一个特定日期和时间的数据表,日期和时间格式为“dd/mm/yy hh:mm”。 我想突出显示仅包含今天日期的单元格。 我写了以下程序,但它似乎不起作用。

在我的数据表中,日期位于从 D 列开始的第 5 行。

Sub SmplAnalFormat()
'
' SmplAnalFormat Macro
'

'

Dim i As Integer
i = 5

Dim dt1, dt2 As Date

Dim d1 As Double
Dim d2 As Double
Dim v As Double

dt1 = Date + 0 + TimeValue("00:00:01")
dt2 = Date + 1 + TimeValue("00:00:01")

d1 = dt1
d2 = dt2

ActiveSheet.Range("D5").Select

While Not IsEmpty(ActiveCell)
v = ActiveCell.Value

    If d1 < v < d2 Then
    Debug.Print v; d1; d2; dt1; dt2; ActiveCell.Value
    
   ' Cells(5, i).Interior.ColorIndex =
   ' Else
   ' ActiveCell.EntireColumn.Hidden = True
      End If
      Selection.Offset(0, 1).Select
      i = i + 1
              
Wend

  '  Columns("D:R").Select
  '  Selection.EntireColumn.Hidden = True
End Sub

在上面的代码中,我首先将所有日期和时间转换为数值,然后检查它们是否在今天早上到今晚午夜之间。但条件不行。我不明白为什么...

excel vba date datetime time
1个回答
0
投票

本案例的评价如下

d1 < v < d2

第一:

d1 < v
结果为逻辑值 0 或 1。

第二个:

(0 or 1) < d2

你需要逻辑上

AND
来比较sg。像这样:

    If d1 < v And v < d2 Then
© www.soinside.com 2019 - 2024. All rights reserved.