找不到方法setValues(string)?如果已选中复选框,则尝试根据当前时间创建时间戳

问题描述 投票:0回答:1

我还在尝试创建一个时间触发器,用于检查当天是否已将某个复选​​框编辑为“true”,并在下一列中显示时间戳以显示上次编辑的时间。这是我下面的代码,我还没有让它运行起来。显示:找不到方法setValues(字符串)。 12号线

function myFunction(event) {
  var timeZone = Session.getScriptTimeZone();
  var timestampFormat = "MM-dd-yyy hh:mm:ss";
  var now = new Date();
  var actRng = SpreadsheetApp.getActive().getRange("C2:C200");
  var editColumn = actRng.getColumn();
  var index = actRng.getRowIndex();
  var sheet = SpreadsheetApp.openById("1_LMkYec4CymMQZ6vdCswkr2UGiGPIOGLlLBMlLYEw3k");
  var checkRange = sheet.getRange("C:C");
  var checkBox = sheet.getRange("B:B");
  if (checkBox.getValue() == true) {
    checkRange.setValues(Utilities.formatDate(now, timeZone, timestampFormat));
  }
}
google-apps-script google-sheets timestamp
1个回答
0
投票

只需使用onEdit():

我希望您意识到没有事件对象就无法运行此功能。它可能必须是可安装的触发器,其他人正在使用电子表格。

function onEdit(e) {
  if(e.range.getSheet().getName()!='WhatEverSheetNameYouPutHere') return;
  if(e.range.columnStart==2 && e.value=="TRUE") {
    e.range.offset(0,1)=Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "MM-dd-yyy hh:mm:ss");
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.