我有一个特定日期和时间的数据表,日期和时间格式为“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
在上面的代码中,我首先将所有日期和时间转换为数值,然后检查它们是否在今天早上到今晚午夜之间。但条件不行。我不明白为什么...
本案例的评价如下
d1 < v < d2
第一:
d1 < v
结果为逻辑值 0 或 1。
第二个:
(0 or 1) < d2
你需要逻辑上
AND
来比较sg。像这样:
If d1 < v And v < d2 Then