从特定列编辑时的时间戳
Timestamp on edit from a specific column
我试图有一个时间戳使用谷歌表。我已经有了一个脚本,每次编辑表单时都会这样做。但是,我想要的是在更新特定列标头时应用时间戳。
我有一个名为"STATUS"的列,这是在列G.我只是想,只有当这个列被编辑时,它才会触发脚本在列L中记录一个时间戳,名为"LAST UPDATED"。
我正在使用的当前脚本是:
function onEdit(event)
{
var timezone = "PST";
var timestamp_format = "MM/dd/yyyy hh:mm:ss a zzz";
var sheet = event.source.getActiveSheet();
// note: actRng = the cell being updated
var actRng = event.source.getActiveRange();
var index = actRng.getRowIndex();
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues();
var dateCol = headers[0].indexOf('LAST UPDATED');
if (dateCol > -1 && index > 1) { // only timestamp if 'Last Updated' header exists, but not in the header row itself!
var cell = sheet.getRange(index, dateCol + 1);
var date = Utilities.formatDate(new Date(), timezone, timestamp_format);
cell.setValue(date);
}
}
我也在这个论坛找到了脚本,但没有找到任何关于我上面的问题。
如有任何帮助,不胜感激。
谢谢
下面是我目前使用的脚本。我对JavaScript的了解非常有限,但它应该能满足您的要求。但是,我仍然难以获得IF返回空值的工作。所以请随时提供反馈。
然后格式化该列以包含日期/时间,但您可以轻松地适当地格式化脚本。
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() == 2 ) { //checks the column
var nextCell = r.offset(0, -1);
if(s.getActiveCell() == null) { //is empty?
return nextCell.setValue(null) ;
}
else {
nextCell.setValue(new Date());
}
}
}
相关文章:
- 如何每10.6秒从时间戳增加+1
- 使用AngularJS从时间戳中获取工作日
- 将时间戳转换为java中的ISO860,
- Javascript Unix时间戳转换
- JavaScript JSON关联对象键和值都作为日期时间戳
- 时间戳与mongoskin如何
- 用时间戳获取两个不同日期之间的时间差
- JavaScript到PHP的时间戳失败,增加了大约一个半月的时间
- 转换unix时间戳转换
- 带有unix时间戳的d3.js平分线
- 当转换为Python日期时间时,Node的时间戳落后3分钟
- 如何检索AMD的XHR响应代码(+时间戳)'大型Dojo
- javascript时间戳插入字符串变量
- Moment.js unix时间戳,以分钟为单位显示以前的时间
- 事件时间戳谷歌分析
- 时间戳到文本
- Unix时间戳从现在输出为1970
- 如何使用javascript在嵌入式youtube视频上创建可点击的时间戳链接
- Atom编辑器:用于插入时间戳的代码段
- 从特定列编辑时的时间戳