如何将值从一个单元格复制到另一个单元格(使用公式),但不从源单元格复制公式

如何将值从一个单元格复制到另一个单元格(使用公式),但不从源单元格复制公式

NOW()我在电子表格的许多地方使用了该函数,它基本上是一个清单文档。

所以我的要求是,对于每个步骤,它都应该记录完成该步骤的日期时间。但是每当使用 Now() 时...所有之前更新的带有日期时间的单元格也会再次更新。因此,到最后,我无法获得完成每个步骤的详细时间。

这就是我到目前为止所创造的:

  • 每个步骤都使用一个复选框。步骤完成后,单击复选框,单元格 A1 将更新为“已完成”。
  • 在单元格 B1 中,我放置了以下函数,它将检查 A1 中的值。如果是“已完成”,则它将使用当前日期时间更新 B1 的值使用 Now()

    =IF(A1="Completed";NOW();"")
    

请告诉我解决方案。还有没有其他替代方案。

答案1

这是我经常要做的事情,但我所知道的唯一选择并不理想:

  1. 您可以照常复制单元格,但使用“选择性粘贴”并取消选中除“数字”或您想要粘贴的任何内容之外的所有内容。

  2. 或者,您可以“通过代理复制粘贴”,即复制并粘贴到常规文本框中(记事本、您喜欢的浏览器的地址栏、打开的 shell 窗口,无论哪种方式最方便)。然后复制该文本并将其粘贴到单元格中。

我通常选择第二种方法,因为它实际上比“选择性粘贴”快得多(因为您可以使用键盘快捷键)。

编辑:
我误解了这个问题。如果你正在寻找一种以编程方式实现的方法,那么可以。你只需要使用.value单元格的属性。

我已经在 LibreOffice Calc 中测试过了,可以正常工作。我怀疑它也可以在 OpenOffice Calc 中工作,因为它改编自我在评论中链接的 OpenOffice 代码片段:

Sub GetDate
    Dim myTable as Object, mySheet as Object, _
        curDate as Date, curTime as Date
    Const TRRange = "A2:F2"  'Template row range
    Const ColPosDate = 0     'Date column position
    Const ColPosTime = 5     'Time column position

    mySheet = ThisComponent.Sheets(0)
    myTable = mySheet.getCellRangeByName(TRRange)

    'curDate and curTime should be identical as they're both just NOW() cells
    ' --one formatted (for display) as date and the other as time
    curDate = myTable.getCellByPosition(ColPosDate,0).value
    curTime = myTable.getCellByPosition(ColPosTime,0).value

    print curDate
End Sub

相关内容