Google脚本 - 时间触发功能错误

时间:2016-08-04 03:33:23

标签: javascript google-apps-script triggers

此功能/触发器组合旨在每天记录实时数据。目的是将N2:P2作为值粘贴在列C:E的底部。

    如果我手动运行,
  1. pullvalue()可以正常工作。
  2. 这里的问题:设置时间驱动的触发器会导致值粘贴在C1:E1而不是列的底部。
  3. 我怀疑target_rangeClast返回零值时发生故障,但我无法弄清楚原因。
  4. 我错过了什么?感谢您的帮助/反馈!

    function pullvalue() {
       var ss = SpreadsheetApp.getActiveSpreadsheet();
       var target = SpreadsheetApp.getActiveSpreadsheet();
       var source_sheet = ss.getSheetByName("Production");
       var target_sheet = target.getSheetByName("Production");
       var source_range = source_sheet.getRange("N2:P2");
       var Cvals = ss.getRange("C1:C").getValues();
       var Clast = Cvals.filter(String).length;
       var target_range = target_sheet.getRange("C"+(Clast+1)+":E"+(Clast+1))
       source_range.copyTo(target_range, {contentsOnly:true});}

1 个答案:

答案 0 :(得分:0)

请验证此行:

var Cvals = ss.getRange("C1:C").getValues();

变量ss仅返回当前的activespreadsheet,但是当它从时间驱动的触发器运行时没有活动工作表,所以你需要指明工作表,你可以使用getSheetByName()或getSheets()这行应该是这样的:

var sheet = ss.getSheetByName("Sheet1");
var Cvals = sheet.getRange("C1:C").getValues();

希望这会对你有所帮助。

感谢。