vba - EXCEL VBA : comparing day & month only from all the date

标签 vba date excel

我试图只比较以下时间间隔的一天:

Sheets("DATA").Range("H:H").NumberFormat = "mm/dd/yyyy hh:mm am/pm"

我发现自己有一个包含在许多其他 IF 中的 IF 函数的解决方案

If Sheets("Data").Range("i" & i).Value <> "N/A" And Sheets("Data").Range("K" & i).Value <> "N/A" Then
    If Day(Sheets("Data").Range("i" & i)) = Day(Sheets("DATA").Range("K" & i)) Then
        Sheets("Data").Range("S" & i).Value = "Equals"
    ElseIf Day(Sheets("Data").Range("i" & i)) > Day(Sheets("DATA").Range("K" & i)) Then
        Sheets("Data").Range("S" & i).Value = "Later"
    Else: Sheets("Data").Range("S" & i).Value = "Earlier"
    End If
    Else: Sheets("Data").Range("S" & i).Value = "N/A"
End If

这似乎可以解决问题 - 仅比较所有日期间隔中的一天,并在 S 列中写入是同一天、之后还是更早,或者“不可用”。

但是,如果一个或另一个日期在另一个月份,这不起作用(因为从 2012 年到 2013 年有超过 50 万行的大量数据)

如何从这种格式“mm/dd/yyyy hh:mm am/pm”比较年/月/日而不删除原始行中的小时和分钟(创建没有小时/分钟的新行也不是一个选项)

谢谢!

最佳答案

使用 Value2 比较单元格的值属性(property)。 Value2属性返回单元格的未格式化值。存储的日期/时间值的每个整数代表一天,所以我使用了 Int()截断存储值的方法,因此我们仅按日期进行比较,而不是按分钟或秒进行比较。

If Sheets("Data").Range("i" & i).Value <> "N/A" _
        And Sheets("Data").Range("K" & i).Value <> "N/A" Then

    Select Case Int(Sheets("Data").Range("i" & i).Value2)
        Case Is = Int(Sheets("DATA").Range("K" & i).Value2)
            Sheets("Data").Range("S" & i).Value = "Equals"
        Case Is > Int(Sheets("DATA").Range("K" & i).Value2)
            Sheets("Data").Range("S" & i).Value = "Later"
        Case Else
            Sheets("Data").Range("S" & i).Value = "Earlier"
    End Select

Else
    Sheets("Data").Range("S" & i).Value = "N/A"
End If

关于vba - EXCEL VBA : comparing day & month only from all the date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25733565/

相关文章:

vba - 范围 - 更改引用

vba - 总和范围直到某个单元格颜色或值之后?

vba - 迭代次数过多 : syntax needed to highlight the cell row only after satifsying all criteria

javascript - 如何在 JS 中聚合每周的天数数组?

MySQL:选择范围内的所有日期,即使没有记录存在

swift - 在 Swift 中计算多个单位的时间段

vba - 如何更改 Excel VBA 项目中的全局变量名称?

VBA 用户表单。文本框作为单元格的数值

vba - 编译vba代码时什么时候处理Dim语句?

python - 修改工作簿 openpyxl 时如何保留形状?