【发布时间】:2018-03-14 04:18:03
【问题描述】:
我有两列 15 分钟的日期/时间间隔数据。一个格式为 24 小时制,另一个格式为 12 小时制。这些来自两个不同的来源,重新格式化源数据不是一种选择。所有这些间隔都显示为完全匹配(甚至作为值),但是当我使用查找公式(INDEX/MATCH & VLOOKUP)甚至 VBA 时,没有识别出每三个间隔的匹配项。我在下面附上了带有公式的示例图片以及我的代码。提前致谢!
Sub MatchTest()
Dim i As Integer
For i = 2 To 22
If CDate(Cells(i, 1).Value) = CDate(Cells(i, 3).Value) Then
Cells(i, 8) = Cells(i, 2)
ActiveCell.Offset(1, 0).Select
Else:
Cells(i, 8) = "NA"
ActiveCell.Offset(1, 0).Select
End If
Next i
End Sub
【问题讨论】:
-
尝试使用
If Abs(Cells(i, 1).Value - Cells(i, 3).Value) < 0.0000001 Then。我怀疑其中一个数字已经四舍五入了。 (非整数值的行为并不异常。) -
如果没有源文件,我无法重新创建问题,我敢打赌它们包括毫秒?我怀疑@YowE3K 是正确的。也许这将是使用
.value2而不是.value作为CDate()函数的时代之一 -
@YowE3K 和约书亚芬纳。你们都完全正确。我从来没有考虑过有意义的毫秒,因为这些是功率输出的间隔读取。 "
标签: excel vba date time format