我有一个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
从理论上讲我试图创建一个脚本,将复制上有一个时间戳的单元格,然后尝试“选择性粘贴”,只是粘贴值转换成所需要的细胞。 这会工作,除了我无法找到一个方法来粘贴特殊与谷歌应用程序的脚本。
感谢您的帮助/编辑
计算器是问有关编程问题的地方,比如,你实际工作的。 并不是要求别人来开发它为你,即你甚至没有开始尝试任何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
。
只是除了在同一张纸上对于多列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());
}
}
}
如果你希望它更新,如果小区再次改变只是删除这一行
//if( nextCell.getValue() !== '' ) //is empty?
BTW:如何日期被格式化为恩。 日/月/年,而不是默认DD / MM / YYYY HH:MM:SS格式
实际上,在这种情况下,你不必脚本什么。 谷歌(或某人)已经做到了。 在你的谷歌电子表格转到“插入 - >脚本”和“时间”进行搜索。 有两个现成的脚本,会做你想要什么。 我发现“细胞最后修改日期”完美的作品。 选择它,然后单击“安装”按钮。 您可以重新格式化栏,显示日期,日期+时间,等等。 您也可以手工代码栏的日期,或者它们的另一列动,如果你之前跟踪它,他们将留在您设置。 但该行中更新任何单元格将更新时间戳。
我设置了时间戳包括HH:MM:SS但在测试邮票4次在一分钟内,我得到:03,14,11,07波动的MM在我的时间戳。