首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >找不到方法setValues(string)?如果复选框已选中,则尝试基于当前时间制作时间戳

找不到方法setValues(string)?如果复选框已选中,则尝试基于当前时间制作时间戳
EN

Stack Overflow用户
提问于 2019-04-25 01:05:16
回答 1查看 60关注 0票数 0

我仍然在尝试创建一个时间触发器,它检查复选框是否在那天被编辑为'true‘,并在下一列中创建一个时间戳,以显示它最后一次被编辑的时间。这是我下面的代码,我甚至还没有让它运行。显示:找不到方法setValues(字符串)。第12行。

代码语言:javascript
复制
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));
  }
}
EN

回答 1

Stack Overflow用户

发布于 2019-04-25 06:32:55

只需使用onEdit():

我希望您能意识到,如果没有事件对象,则无法运行此函数。当其他人正在使用电子表格时,它可能必须是一个可安装的触发器。

代码语言:javascript
复制
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");
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55835229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档