【问题标题】:How to set the datetime into an excel cell only one time based on another cell value?如何根据另一个单元格值将日期时间设置为 Excel 单元格一次?
【发布时间】:2021-09-30 11:45:02
【问题描述】:

我想将 datetime now() 设置为一列(例如“J”),但只设置 1 次,以保存该列(例如“F”)设置值“是”的时刻。

我尝试了宏,但这是不可能的,因为我想在 TEAMS 上分享它,但它无法正常工作。我将这个宏添加到我的桌面应用程序中,并且工作正常,但我需要与此类似的东西,但在单元格函数中...

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
On Error GoTo enditall
    Application.EnableEvents = False
If Target.Cells.Column = 6 Then
        n = Target.Row
        If Me.Range("F" & n).Value = "Yes" Then
            Me.Range("J" & n).Value = Format(Now, "DD/HH/MM hh:mm:ss")
        Else: Me.Range("J" & n).Value = ""
        End If
    End If
enditall:
    Application.EnableEvents = True
End Sub

相反,我尝试了一个具有此功能的单元格,但它始终更新日期时间,我只想保存它更改为“是”的那一刻:

=IF(F7="Yes";NOW();"")

我也试过这个,但是如果我尝试使用我自己的设置了功能的单元格,它就会出错:

=IF(AND(F7="Yes";ISBLANK(J7));NOW();"")

【问题讨论】:

    标签: excel datetime excel-formula cell


    【解决方案1】:

    使用公式的问题在于它会重新评估所有时间戳。如果您真的必须使用公式,我想您可以尝试将计算选项设置为手动。这很冒险,因为一旦你按下 F9,你就会丢失所有数据。

    改用新的 Office 脚本怎么样?它应该类似于 VBA 并在浏览器中工作。

    https://docs.microsoft.com/en-us/office/dev/scripts/overview/excel

    【讨论】:

    • 感谢您的回答。我尝试了办公脚本(有趣的工具),但似乎由于某种原因它不起作用。有一个选项可以使用公式重新评估另一个单元格,我可以在哪里设置我想要检查的值是否为空白,如果不是,则设置数据,什么都不做?
    • @adrisiadrice - 您能否分享更多关于您在使用 Office 脚本时遇到的问题?