Google Spreadsheet Cycler

时间:2015-07-09 14:09:00

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

首先,我知道我之前发布了类似于此的内容,但我得到了一个我无法理解的回复,就是这样。所以,我正在尝试为google工作表创建一个应用程序脚本,以便能够在每个工作日增加特定单元格中的数字值。我已经知道如何为时序设置基于时间的触发器,所以我需要的只是实际的代码。我对编码知之甚少,这是我能想到的最好的:

    function onEdit(e) {
    var range = e.range
    var sheet = e.range.getSheet();
    sheet.getRange(range.getRow(), 1).setValue(e.(e + 1));
    }

当我尝试运行它时,它说:

    TypeError: Cannot read property "range" from undefined.(line 2,file"")

如何解决这个问题的任何想法将不胜感激!但是,请把它放在一个菜鸟可以理解的条件下!

1 个答案:

答案 0 :(得分:1)

你现在拥有的代码是正确的,但有一点误会 onEdit触发器是一个触发器,但它不是基于时间的触发器。每次在电子表格中编辑单元格时都会调用onEdit。如果从基于时间的触发器调用此函数,它将不会像通过编辑触发那样传递事件对象(e),这就是您收到错误的原因。 相反,修改基于时间的触发器以调用不依赖于事件对象的其他函数 我的理解是它是一个静态单元格,你正在递增(我的意思是它总是在同一个地方)所以我的建议是抓住电子表格,抓住相应的表格,抓住单元格,然后编辑它的内容,类似于你已经在做的但更多的手册。在代码中,它看起来像这样:

function incrementCell(){
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('SheetName');
  var value = sheet.getRange('B2');  
  value.setValue(value.getValue() + 1);

}

只需将您的工作表名称和单元格A1符号位置替换为代码,并将时间驱动触发器指向此功能,它应该适合您。