Ind*_*m83 7 excel excel-2007 excel-formula
希望有一种方法可以使用公式来完成,因为我将把它作为共享工作簿放在SharePoint上.
B列包含任务,而E列包含分配任务的日期和时间.当有人在B列输入数据时,是否有一个公式会自动输入E列中的当前日期和时间?
任何帮助将不胜感激.
另一种方法如下所述.
首先,打开下面的迭代计算File - Options - Formulas - Enable Iterative Calculation.然后将最大迭代次数设置为1000.
执行此操作后,请使用以下公式.
=If(D55="","",IF(C55="",NOW(),C55))
Run Code Online (Sandbox Code Playgroud)
一旦输入任何内容D55(对于此示例),则C55根据单元格格式填充今天的日期和/或时间.即使将新数据输入单元格C55,此日期/时间也不会再次更改,因此它显示最初输入数据的日期/时间.
这是一个循环引用公式,因此每次打开工作簿时都会收到有关它的警告.无论如何,该公式可以在工作表中的任何位置使用并且易于使用.
这可以通过简单的VBA功能来完成。Excel支持工作表更改子,可以对其进行编程,以便在每次触发时在相关列中放置一个日期。
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
Run Code Online (Sandbox Code Playgroud)
快速说明。下面的“ if”语句检查两件事:(1)是否是第二个更改的列(B列),以及(2)如果上方三列的单元格(E列)当前为空。
If Target.Column = 2 And Target.Offset(0, 3).Value = "" Then
Run Code Online (Sandbox Code Playgroud)
如果两个条件都成立,则使用该NOW()函数将日期放入E列的单元格中。
Target.Offset(0, 3) = Format(Now(), "HH:MM:SS")
恐怕没有这样的功能。您需要一个宏来完成此任务。
您可以在 E 列中执行类似的操作(记住设置自定义格式“dd/mm/yyyy hh:mm”):
=If(B1="";"";Now())
Run Code Online (Sandbox Code Playgroud)
但每次文件打开时它都会改变值。
您需要通过宏保存该值。