首页 > 解决方案 > 为时间戳脚本调用每个偶数列

问题描述

我正在尝试为我们的 Google 表格脚本创建一个时间戳。主要目标是创建一个脚本,如果将某些内容添加到任何“偶数”列,它将在每个“奇数”列中创建一个时间戳。

现在,我发现了这个:

function onEdit() {
 var s = SpreadsheetApp.getActiveSheet();
 if( s.getName() == "Sheet1" ) {
   var r = s.getActiveCell();
   if( r.getColumn() == 13 ) { 
     var nextCell = r.offset(0, 1);
     if( nextCell.getValue() === '' ) 
       var time = new Date();
       time = Utilities.formatDate(time, "GMT", "HH:mm:ss");
       nextCell.setValue(time);
   };
 };
}

它完美地工作,但不幸的是,仅适用于第 13 列。如何使此代码适用于每个偶数列?

标签: google-apps-scriptgoogle-sheets

解决方案


您可以使用模运算符(如此处所述来检查编辑的列是“偶数”还是“奇数”。假设您希望代码在“Sheet1”上运行,请查看此代码是否适合您

function onEdit(e) {
if(e.source.getActiveSheet().getName() !== 'Sheet1' || 
e.range.columnStart % 2 > 0) return;
var off = e.range.offset(0, 1);
if(!off.getValue()){ 
off.setValue(Utilities.formatDate(new Date(), "GMT", 
"HH:mm:ss"))
}
}

推荐阅读