2016-08-04 72 views
0

此功能/觸發組合旨在每天保存實時數據的日誌。目的是將N2:P2作爲C:E列底部的值粘貼。谷歌腳本 - 帶時間觸發的功能錯誤

  1. pullvalue()工作正常,如果我手動運行。
  2. 這是問題:設置時間驅動的觸發器會導致將值粘貼到C1:E1而不是列底部。
  3. 我的懷疑是當Clast返回零值時target_range崩潰了,但我無法弄清楚原因。

我錯過了什麼?感謝您的幫助/反饋!

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

回答

0

請覈實這一行:

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

變量SS返回目前僅activespreadsheet,但是當它從一個時間驅動的觸發器運行沒有活動表,所以你需要指明表單,可以使用getSheetByName()或getSheets()這行應該看起來像這樣:

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

希望這會幫助你。

謝謝。

+0

完美的作品!謝謝! – xphrellis