Excel数据input到同一行的另一个单元格时,将单元格放置在单元格中的date/时间

希望有一种方法可以用公式完成,因为我将把它作为共享工作簿放在SharePoint上。

列B包含任务,而列E包含任务分配的date和时间。 是否有一个公式,只要有人在列B中input数据,就会自动在列E中input当前date和时间?

任何援助将不胜感激。

这可以用一个简单的VBAfunction来完成。 Excel支持一个工作表变更小组,该工具小组可以通过编程在每次启动时在相关列中添加一个date。

Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 And Target.Offset(0, 3).Value = "" Then Target.Offset(0, 3) = Format(Now(), "HH:MM:SS") End If End Sub 

快速解释。 下面的“if”语句检查两件事情:(1)如果是第二列已更改(列B),以及(2)如果单元格3列(列E)当前为空。

 If Target.Column = 2 And Target.Offset(0, 3).Value = "" Then 

如果两个条件都成立,则使用NOW()函数将date放入E列的单元格中。

Target.Offset(0, 3) = Format(Now(), "HH:MM:SS")

Range.Offset

Range.Column

下面介绍另一种方法。

首先,在File - Options - Formulas - Enable Iterative Calculation 。 然后将最大迭代次数设置为1000。

这样做后,使用下面的公式。

 =If(D55="","",IF(C55="",NOW(),C55)) 

一旦任何东西input单元格D55 (对于这个例子),然后C55根据单元格格式填充今天的date和/或时间。 即使将新数据input到单元格C55中,此date/时间也不会再次更改,因此它会显示最初input数据的date/时间。

这是一个循环参考公式,因此每次打开工作簿时都会收到警告。 无论如何,该公式的工作原理,并易于在工作表中的任何地方使用。

不知道这是否适用于具有函数的单元格,但是我在其他地方find此代码单个单元格条目并将其修改为供我使用。 如果正确完成,则不必担心在单元格中input函数,或者每次打开文件时都会将date更改为当天的date。

  • 打开Excel
  • 按“Alt + F11”
  • 双击要应用更改的工作表(在左侧列出)
  • 复制/粘贴下面的代码
  • 调整范围(:)input以对应您要更新的列
  • 调整Offset(0,_)input以对应于您希望显示date的列(在下面的版本中,我正在更新列D,并且希望date显示在F列中,因此input条目为“2 “对于D列的2列)
  • 保存
  • 如果工作簿中还有其他工作表需要相同的代码,请重复上述步骤
  • 您可能必须将显示date的列的数字格式更改为“常规”,并在更新的条目后显示“####”时增加列的宽度

复制/粘贴代码如下:


私人小组Worksheet_Change(BYVAL目标作为范围)

 If Intersect(Target, Range("D:D")) Is Nothing Then Exit Sub Target.Offset(0, 2) = Date 

结束小组


祝你好运…

恐怕没有这样的function。 你需要一个macros来完成这个任务。

你可以在列E中做这样的事情(记得设置自定义格式“dd / mm / yyyy hh:mm”):

 =If(B1="";"";Now()) 

但每次打开文件时都会改变数值。

您需要通过macros保存值。

您可以使用If函数在要inputdate的单元格中写入以下公式:= IF( MODIFIED-CELLNUMBER <>“”,if( CELLNUMBER-WHERE-TO-INPUT-DATE =“”,NOW(), CELLNUMBER-WHERE-TO-INPUT-DATE ),“”)