一旦input数据,如何冻结= today()函数

我想在Excel中的表中使用= TODAY()函数。 但是,一旦数据input到表格行中,我希望它不会再次更改date(有效捕获行数据的添加date)。

这将在表中的每一行使用,所以数据input表中的行,每个date将被捕获。

这是可能的,我该怎么做?

编辑 – pnuts这是不一样的这个问题。 我不想使用button,而是使用单元格公式。

而不是input公式

=TODAY() 

触摸Ctrl + ;

代替。 这将在单元格中放置一个“冻结”的date。

加里的学生答案是最好的这个具体问题,但是如果你愿意使用循环引用,可以冻结不使用VBA的易失性工作表函数。 在File\Options\Formulas检查Enable iterative calculation然后,假设A1当前是空白的,请input

 =IF(A1 = 0,TODAY(),A1) 

Excel的默认格式处理不知道将其格式化为date – 所以您需要单独执行此操作。 比Ctrl + ;更多的工作Ctrl + ; ,但是这个技巧可能还有其他一些用例。

免责声明:我明确testing过,这个技巧可以防止重新计算Now()而不是Today() 。 我不愿意等到午夜来testingToday()

在编辑:这是一个有趣的用例。 假设你有一个完整的空白单元格,其中A1是左上angular的单元格。 突出显示该范围时,input公式

 =IF(A1 = 0, RAND(), A1) 

然后Ctrl + Enter 。 然后整个范围填充不同但固定的随机值。