使用在不同单元格中输入的日期作为单个变量进行比较

时间:2014-01-19 08:30:21

标签: vba date excel-vba excel

我想问一种方法,将3个单元格的值作为输入,然后将它们组合成一个日期,以便与我的代码一起使用。

无法使用的代码在这里:

ph2bdate = DateValue(.Range("K6").Value, .Range("K5").Value, .Range("K4").Value) + 1
ph2blastrow = .Cells(.Rows.Count, 1).End(xlUp).Row
For ph2bsteps = 8 To ph2blastrow Step 1
    If Year(.Cells(ph2bsteps, 1).Value) = Year(ph2bdate) _
    And Month(.Cells(ph2bsteps, 1).Value) = Month(ph2bdate) _
    And Day(.Cells(ph2bsteps, 1).Value) = Day(ph2bdate) Then
    ph2brangeupper = ph2bsteps
    Exit For
    End If

提前致谢!

1 个答案:

答案 0 :(得分:0)

MeThinks认为Siddharth Rout的变化是正确的,因为我们不需要在FOR循环内右侧使用年/月/日。但是我们也不需要在左侧使用Year / ...也不需要返回Range - 我们可以比较两个日期 -

ph2bdate = DateSerial(.Range("K6").Value, .Range("K5").Value, .Range("K4").Value) + 1
ph2blastrow = .Cells(.Rows.Count, 1).End(xlUp).Row
For ph2bsteps = 8 To ph2blastrow Step 1
    If .Cells(ph2bsteps, 1).Value  = ph2bdate
        ph2brangeupper = ph2bsteps
        Exit For
    End If
Next ph2bsteps

我们总是在某一行中有一个+1日期,或者我们是否需要比较> =