在一个时间范围内搜索

时间:2011-04-18 13:05:30

标签: xml excel

我目前正在使用一个匹配某个标准从一个工作表到另一个工作表的公式并返回一个值。我遇到的问题是,如果两张纸上的时间完全相同,它只会返回一个真值。我需要它来查看第一张纸上的时间,并检查它是否与第二张纸上的时间相加或减去10分钟。这是我正在使用的代码。 FYI(Sheet1,1 = = Date,2 = Time,3 = RefNo)(Sheet2,1 = Date,2 = Time,3 = RefNo,4 = RefNo)

If UCase(Worksheets("Sheet1").Cells(i, 1).Value) = UCase(Worksheets("Sheet2").Cells(j, 1).Value) Then
If UCase(Worksheets("Sheet1").Cells(i, 2).Value) = UCase(Worksheets("Sheet2").Cells(j, 2).Value) Then
If UCase(Worksheets("Sheet1").Cells(i, 3).Value) = UCase(Worksheets("Sheet2").Cells(j, 4).Value) Or UCase(Worksheets("Sheet1").Cells(i, 4).Value) = UCase(Worksheets("Sheet2").Cells(j, 4).Value) Then
Worksheets("Workings").Cells(i, 1).Value = UCase(Worksheets("Sheet2").Cells(j, 12).Value)
Worksheets("Workings").Cells(i, 2).Value = UCase(Worksheets("Sheet2").Cells(j, 9).Value)

我无法在任何论坛上找到对此问题的引用,而且完全难倒,我相信有一个简单的解决方案。

1 个答案:

答案 0 :(得分:1)

假设VBA,单元格采用日期/时间格式&我是他们的地址;

Abs(DateDiff("N", Worksheets("Workings").Cells(i, 1).Value, Worksheets("Sheet2").Cells(i, 1).Value))

将返回一个正整数,表示2次之间的分钟数差异。

我创建了一个空白工作簿;

Worksheets("Sheet1").Cells(1, 2).Value = "15:00:00"
Worksheets("Sheet1").Cells(2, 2).Value = "15:00:00"
Worksheets("Sheet1").Cells(3, 2).Value = "15:00:00"

Worksheets("Sheet2").Cells(1, 2).Value = "15:05:00"
Worksheets("Sheet2").Cells(2, 2).Value = "15:59:00"
Worksheets("Sheet2").Cells(3, 2).Value = "15:00:00"

For i = 1 To 3
    If (Abs(DateDiff("N", Worksheets("Sheet1").Cells(i, 2).Value, Worksheets("Sheet2").Cells(i, 2).Value)) < 10) Then
        Worksheets("Sheet2").Cells(i, 3) = "in range"
    End If
Next

对我而言,我在sheet2上看到了;

15:05   in range
15:59   
15:00   in range