%20%E5%87%BD%E6%95%B8.png)
答案1
新答案
如果您想要一個不重新計算的時間戳,您將需要使用一種稱為循環公式。這基本上允許細胞根據其自身內容執行功能。
您需要透過前往「檔案」>「選項」>「公式」然後勾選Enable iterative calculation
.將迭代次數更改為1
。按下“確定”並儲存您的工作表。
=IF(A1<>"",IF(B1="",NOW(),B1),"")
解釋:
第一個IF
與原始答案中的類似。它檢查是否A1
為空。<>
是邏輯運算符的意思not equal to
。第二個IF
檢查自身並在內容輸入到 時執行A1
。如果B1
為空,則輸入目前日期和時間,否則輸出現有內容(原始時間戳記)。
原答案
你可以在B1試試這個:
=IF(ISBLANK(A1),"",NOW())
解釋:
ISBLANK
是一個邏輯測試,測試目標儲存格是否有任何輸入。它返回TRUE
或FALSE
。其IF
結構使得如果目標單元格為空,它將輸出空字串。如果輸入任何內容,A1
它將輸出當前時間和日期。
需要注意的是,每次重新計算工作表時, 輸出的值NOW()
都會變更為目前時間。
參考:
答案2
對所有事情都使用 VBA 並不總是明智的,但這是一個很好的選擇,特別是如果您想追蹤行何時更改,而不僅僅是第一次輸入時。將以下內容插入到帶有時間戳列的工作表的程式碼中:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim intersection As Range
' Change A:A,C:E to whatever range you want to watch.
Set intersection = Application.Intersect(Target, Me.Range("A:A,C:E"))
If Not intersection Is Nothing Then
Dim r As Range
For Each r In intersection.Rows
' Change B1 to whichever column is the timestamp.
r.EntireRow.Range("B1").Value = Now
Next
End If
Application.EnableEvents = True
End Sub
在此範例中,將監視 A、C、D 和 E 列的更改,當發生更改時,當前日期和時間將插入到同一行的 B 列中。