當我在另一個儲存格中寫入並按 Enter 鍵時,如何在儲存格中自動插入 =now() 函數

當我在另一個儲存格中寫入並按 Enter 鍵時,如何在儲存格中自動插入 =now() 函數

我想知道如何:

=now()每當我在對應單元格(A1,A2,.. Aν)的A列中寫入內容時,自動在Excel的B列中具有該函數,僅顯示在每個單元格(B1,B2,.. Bν)中。

在此輸入影像描述

答案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是一個邏輯測試,測試目標儲存格是否有任何輸入。它返回TRUEFALSE。其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 列中。

相關內容