如何在Google表格中为特定行设置时间戳?

时间:2014-06-23 22:11:32

标签: google-apps-script google-sheets timestamp

我正在尝试设置Google表格电子表格,其中,在编辑特定单元格时,右侧单元格中的日期会更新以指示已进行更改。在Google表格论坛上,有人指示我在这里寻求最佳指导。

脚本本身运行正常。但是,我想将它限制在特定的单元格(或行 - 要么工作),以便它不会在我的标题行中添加日期戳。我需要添加什么来将脚本应用于特定的单元格/行?

这是我现在的剧本:

function onEdit() {
  var s = SpreadsheetApp.getActiveSheet();
  var r = s.getActiveCell();
  if( r.getColumn() != 3 ) { //checks the column
    var row = r.getRow();
    var time = new Date();
    time = Utilities.formatDate(time, "GMT-07:00", "MM/dd/yy");
    SpreadsheetApp.getActiveSheet().getRange('C' + row.toString()).setValue(time);
  };
 }; 

假设我们说我有一张包含30个活动行的工作表。我希望日期戳显示在第9行到第13行; 15至18;其他行都是标题,我希望能够在没有Sheets用日期戳填充相邻单元格的情况下更改文本。如果有可能,我将如何编辑脚本以在Google表格中实现此目的?谢谢!!

1 个答案:

答案 0 :(得分:1)

只需为列条件添加更多条件。

例如,对于第2个第一系列行:

  if( r.getColumn() != 3 && ((row>8 && row<14)||(row>14 && row<19))){ // continue with other AND and OR for all your conditions
不过,我还建议用这种专用方法替换硬编码时区:

var tz = Session.getScriptTimeZone();
var time = Utilities.formatDate(new Date(),tz, "MM/dd/yy");

即使您所在的国家/地区有夏令时,它也会自动匹配工作表的时区。