日期减法在生成 .log 文件时没有正确显示

date subtraction doesn't appear correctly vhen generating .log file

我目前有一个在您单击按钮时生成的日志文件。

在 .log 的开头,您可以预览不同的信息,例如登录、url 服务器等...但是您还可以看到进程开始的日期和结束日期。两者都是长日期格式,并在日志文件中正确显示。

该日志文件从 sheet 中获取信息,预览部分是静态的并且是一个范围(“A1:C13”),日志的其余部分在下方但仍在列中(“A :C").

excel中的单元格:

我想添加一行来显示两个日期之间的差异,以便快速查看该过程所花费的时间。

但是,当我创建日志文件时,我得到了数字上的时差。 例如:在 excel 格式的单元格显示 00:01:55 但在日志文件中我得到 0,001331

.log 中的输出:

到目前为止我试过了:

您可以在此处找到创建日志文件的代码:

Private Sub iExportLog(Optional LogPath As String, Optional bouton As String)
Dim NF As Integer, C As Range, posi As Integer
Dim date_nom As String
Dim drct As String
NF = FreeFile

drct = ThisWorkbook.path & "\_LogELB"
Set C = iFLog.Range("A1")

' iFLog = the sheet

' Things I tried :
'iFLog.Range("C12") = Format(iFLog.Range("C11").Value - iFLog.Range("C2").Value, "hh:mm:ss")

'iFLog.Range("C12").NumberFormat = "hh:mm:ss"
'

posi = InStrRev(ThisWorkbook.Name, ".")
If Dir(drct, vbDirectory) = "" Then MkDir (ThisWorkbook.path & "\" & "_LogElb")

date_nom = Format(CStr(Now), "yyyy_mm_dd_hh_mm_ss_")

If LogPath = "" Then LogPath = drct & "\" & bouton & "_" & date_nom & ".log"

Open LogPath For Append As #NF
Do While C.Value <> ""
    Print #NF, C.Value & vbTab & vbTab & vbTab & C.Offset(0, 1).Value & vbTab & C.Offset(0, 2).Value
    Set C = C.Offset(1, 0)
Loop
Close #NF
End Sub

我没有太多操作日期的练习,但我知道这会很痛苦。

有没有办法在生成 .log/.txt 文件时正确显示日期减法?

如果您将格式化的时间字符串写入单元格,那么 Excel 会将其解释为时间值并“撤消”您的格式设置,将值转换回数值(尽管显示格式可能会隐藏那个)。

如果要保留“hh:mm:ss”格式,请先将单元格格式设置为“文本”,或者在将字符串放入单元格之前在字符串前添加 '。或者读取单元格的 Text 属性 而不是 Value