以格式dd/mm/yyyy hh:mm给出两个日期,找出它们之间的小时数和分钟数差异。

3
我一直在尝试找到格式为dd/mm/yyyy hh:mm的两个日期之间的小时和分钟差异。我正在使用的代码(有点)可以正常工作,但它没有考虑到天数的差异。因此,如果第一个日期是28/09/2017 11:35,第二个日期是30/09/2017 13:45,则它将显示差异为02:10。但正确的答案是50:10(50小时10分钟)。我在下面提供了代码。
With ws1.Range("N2:N" & lastrow1)
  .Formula = "=NOW()-E2"
  .NumberFormat = "h:mm:ss"
End With
1个回答

3
您可以使用方括号将溢出的值强制还原回去。
.NumberFormat = "[h]:mm:ss"

编辑(针对评论中的问题):
Excel足够聪明,当公式使用单元格引用时,它会尝试进行相应转换。

或者,您可以尝试以下操作:

With ws1.Range("N2:N" & lastrow1)
    .Formula = "=NOW()-(DateValue(E2)+TimeValue(E2))"
    .NumberFormat = "[h]:mm:ss"
End With

Patrick,太好了!但是我想问你一个问题... E列中的日期是文本格式,但NOW日期是数字格式。当我运行宏时,结果被正确打印... 你认为将来会有bug吗?或者因为我在差异之后使用numberformat,所以不会有问题? - Pericles Faliagas
如果答案正确,请通过点击投票选项下的大勾号将其标记为“已回答”。 - Maldred

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接