简体   繁体   English

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

[英]Google Scripts - Function Error with Time Trigger

This function/trigger combo is intended to keep a log of live data on a daily basis. 该功能/触发器组合旨在保持每天的实时数据记录。 The intent is that N2:P2 get pasted as values at the bottom of Columns C:E. 目的是将N2:P2粘贴为C:E列底部的值。

  1. pullvalue() works fine if I run it manually. 如果我手动运行, pullvalue()可以正常工作。
  2. HERE'S THE ISSUE: Setting up a time-driven trigger causes the values to be pasted in at C1:E1 instead of at the bottom of the columns. 这是问题所在:设置时间驱动的触发器会导致将值粘贴到C1:E1而不是列的底部。
  3. My suspicion is that target_range is breaking down when Clast returns a zero value, but I can't figure out why. 我怀疑是target_range被打破时, Clast返回零值,但我想不出为什么。

What am I missing? 我想念什么? Thanks for your help/feedback! 感谢您的帮助/反馈!

 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});} 

Please verify this line: 请验证以下行:

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

variable ss return currently activespreadsheet only, but when it runs from a time-driven trigger there is no active sheet, so you need to indicate the sheet, you can use getSheetByName() or getSheets() the line should look like this: 变量ss仅返回当前的activespreadsheet,但是当它从时间驱动的触发器运行时,没有活动的工作表,因此您需要指示该工作表,可以使用getSheetByName()或getSheets(),该行应如下所示:

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

Hope this will help you. 希望这会帮助你。

Thanks. 谢谢。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM