当电池充满了自动时间戳(Automatic timestamp when a cell is fil

2019-06-26 06:00发布

我有一个Excel公式,这是非常简单,它的作品,因为我可以限制递归迭代。 我不是很精明的剧本,但这是它是什么,它的工作原理。

=IF(D24="P",IF(E24="",DateStamp,E24),IF(D24="F",IF(E24="",DateStamp,E24),""))

当有人通过或失败的测试其合格/不合格测试片并把它添加一个时间戳。 我们已经增加了几个人,我想移动文件到Google Apps,让超过100人在同一时间进行这项工作。

唯一的问题我已经进来的是循环引用,这会导致。 在Excel中,我可以限制迭代#中的选项,我没有这个能力了。 任何帮助将是巨大的。

编辑:我已经试过。 我一直试图找到一种方法来输入一个VBA脚本,一个同事创建了会为我工作。 我的脚本不是很好,所以我无法使成谷歌在Google Apps脚本:

VBA脚本:

    Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 4 Then
If Cells(Target.Row, 5).Value = "" Then

Cells(Target.Row, 5).Value = Now
End If
Else
End If


End Sub

从理论上讲我试图创建一个脚本,将复制上有一个时间戳的单元格,然后尝试“选择性粘贴”,只是粘贴值转换成所需要的细胞。 这会工作,除了我无法找到一个方法来粘贴特殊与谷歌应用程序的脚本。

感谢您的帮助/编辑

Answer 1:

计算器是问有关编程问题的地方,比如,你实际工作的。 并不是要求别人来开发它为你,即你甚至没有开始尝试任何Google Apps脚本代码呢。 我建议你阅读它的教程和指南 。 这真的很容易下手。

反正,只是为了帮助你开始,我会放下一切,你说,坚持到问题的标题:“自动时间戳当细胞填写”

我建议你做这一切的应用程序脚本,完全放弃你的公式,例如

function onEdit() {
  var s = SpreadsheetApp.getActiveSheet();
  if( s.getName() == "Sheet1" ) { //checks that we're on the correct sheet
    var r = s.getActiveCell();
    if( r.getColumn() == 4 ) { //checks the column
      var nextCell = r.offset(0, 1);
      if( nextCell.getValue() === '' ) //is empty?
        nextCell.setValue(new Date());
    }
  }
}

此代码做什么,我从你的理解,那就是:如果事情是在列编辑D和列E是空的,当前的日期添加到E



Answer 2:

只是除了在同一张纸上对于多列AUTOSTAMP上面的代码

function onEdit() {
  var s = SpreadsheetApp.getActiveSheet();
  if( s.getName() == "Sheet1" ) { //checks that we're on the correct sheet
    var r = s.getActiveCell();
    if( r.getColumn() == 5 ) { //checks the column
      var nextCell = r.offset(0, 1);
      //if( nextCell.getValue() !== '' ) //is empty?
      nextCell.setValue(new Date());
    }

    if( r.getColumn() == 7 ) { //checks the column
      var nextCell = r.offset(0, 1);
      //if( nextCell.getValue() !== '' ) //is empty?
      nextCell.setValue(new Date());
    }

    if( r.getColumn() == 9 ) { //checks the column
      var nextCell = r.offset(0, 1);
      //if( nextCell.getValue() !== '' ) //is empty?
      nextCell.setValue(new Date());
    }
  }
}


Answer 3:

如果你希望它更新,如果小区再次改变只是删除这一行

//if( nextCell.getValue() !== '' ) //is empty?

BTW:如何日期被格式化为恩。 日/月/年,而不是默认DD / MM / YYYY HH:MM:SS格式



Answer 4:

实际上,在这种情况下,你不必脚本什么。 谷歌(或某人)已经做到了。 在你的谷歌电子表格转到“插入 - >脚本”和“时间”进行搜索。 有两个现成的脚本,会做你想要什么。 我发现“细胞最后修改日期”完美的作品。 选择它,然后单击“安装”按钮。 您可以重新格式化栏,显示日期,日期+时间,等等。 您也可以手工代码栏的日期,或者它们的另一列动,如果你之前跟踪它,他们将留在您设置。 但该行中更新任何单元格将更新时间戳。



Answer 5:

我设置了时间戳包括HH:MM:SS但在测试邮票4次在一分钟内,我得到:03,14,11,07波动的MM在我的时间戳。



Answer 6:

它比这更容易! 现在=

要么;

= TODAY

根据你所需要的



文章来源: Automatic timestamp when a cell is filled out