有没有办法让时间停止计数在Excel中?

在我的Excel表中,我有以下代码:

=IF(ISERROR(MATCH(D2,'Sheet 2'!A:A,0)),"",NOW()) 

这基本上检查D2中的值是否与表2中列A:A中的值相匹配,然后用NOW()填充具有date和时间的单元格。

我的问题是date和时间正在计数,因为我正在使用NOW()函数,而我需要的是date,以某种方式拍摄date的快照或冻结date。 我创build的这个表格就像是一个日志,所以我需要把date保持原样放入单元格中。

任何帮助,这是非常感谢。

如果将它粘贴到工作表后面的代码中(其中theCells的范围是时间戳记所在的列),您可以自动运行该theCells

 Private Sub Worksheet_Change(ByVal Target As Range) Dim KeyCells As Range ' The variable KeyCells contains the cells that will ' cause an alert when they are changed. Set KeyCells = Range("theCells") If Not Application.Intersect(KeyCells, Range(Target.Address)) _ Is Nothing Then If Range(Target.Address).Value <> "" Then Range(Target.Address).Copy Range(Target.Address).PasteSpecial xlPasteVaues End If End Sub 

好吧,我解决了它,在我的VBA中,我有下面的代码,这几乎创build一个日志文件时,我的button被点击,它需要在不同的单元格中的各种信息,并填充下一个定义的可用行:

 Sub copylog() Dim LastRow As Long, ws As Worksheet Dim wt As Worksheet Set ws = Sheets("Create Log") Set wt = Sheets("PDF Creation") LastRow = ws.Range("A" & Rows.Count).End(xlUp).Row + 1 ws.Range("A" & LastRow).Value = wt.Range("N11").Value ws.Range("B" & LastRow).Value = wt.Range("N12").Value ws.Range("C" & LastRow).Value = wt.Range("N13").Value ws.Range("D" & LastRow).Value = wt.Range("N14").Value ws.Range("E" & LastRow).Value = wt.Range("N15").Value ws.Range("F" & LastRow).Value = wt.Range("N16").Value ws.Range("G" & LastRow).Value = wt.Range("AT19").Value ws.Range("H" & LastRow).Value = wt.Range("AT21").Value ws.Range("I" & LastRow).Value = wt.Range("AT23").Value ws.Range("J" & LastRow).Value = wt.Range("AT25").Value ws.Range("K" & LastRow).Value = wt.Range("AT27").Value ws.Range("L" & LastRow).Value = wt.Range("A2").Value ws.Range("M" & LastRow).Value = Environ("Username") End Sub 

上面的代码将在下一个可用行中填充一个表格,例如,第一行:

  ws.Range("A" & LastRow).Value = wt.Range("N11").Value 

这将在PDF创build表中填充N11填充的值,并填充创build日志表中A列中的下一个可用行(使用复制和粘贴)。

解决我的时间问题的线是行:

  ws.Range("L" & LastRow).Value = wt.Range("A2").Value 

在单元格A2中,我有NOW()函数,并将该button复制并粘贴到列L中的下一个可用空间(复制和粘贴为TEXT)。