我目前有一個在您單擊按鈕時生成的日志檔案。
在 .log 的開頭,您可以預覽不同的資訊,例如登錄名、服務器的 url 等……但您也有流程開始的日期和結束的日期。兩者都是長日期格式,并在日志檔案中正確顯示。
該日志檔案從表格中獲取資訊,預覽部分是靜態的并且是一個范圍(“A1:C13”),日志的其余部分位于下方但仍在列中(“A:C”)。
excel中的單元格:

我想添加一條顯示兩個日期之間差異的行,以快速查看該程序所用的時間。
但是,當我創建日志檔案時,我得到了數量上的時間差。例如:在excel中,格式為00:01:55的單元格,但在日志檔案中我得到0,001331
.log 中的輸出:

到目前為止,我嘗試過:
- 在處理中匯出時強制使用 vba 中的格式
- 以小時格式復制/粘貼值以不在單元格中顯示減法
- 不同的格式,但不是決定性的
您將在此處找到創建日志檔案的代碼:
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 檔案時,有沒有辦法正確顯示日期減法?
uj5u.com熱心網友回復:
如果您將格式化的時間字串寫入單元格,則 Excel 會將其解釋為時間值并“撤消”您的格式,將值轉換回數值(盡管顯示格式可能會隱藏它)。
如果要保留“hh:mm:ss”格式,則首先將單元格格式設定為“Text”,或者在將字串'放入單元格之前添加字串。或者讀取單元格的Text屬性而不是Value
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/467238.html
上一篇:VBA中的IIF函式
