【问题标题】:sheet.getLastRow() not working when launched by trigger触发器启动时 sheet.getLastRow() 不起作用
【发布时间】:2020-07-10 12:12:48
【问题描述】:

问题的简短描述:

当运行基于触发头时间的自动脚本时,脚本失败 带有以下错误描述

异常:范围的起始行太小。在 fetchData(wkap​​i2:4:20)

(这意味着工作表是空的)并且工作表不是有 300 行的情况。 它运行良好,直到 2 天前....我没有更改脚本或任何设置

当我手动运行脚本时,一切正常...

代码行如下:

function fetchData() {
  var options = {'Cache-Control' : 'max-age=0, must-revalidate'}; //I've used this before to try and prevent google from giving me cached data when making API calls..seems to get the job done
  var sheet = SpreadsheetApp.getActiveSheet(); //This script is bound to the corresponding sheet so we can use this conveinience method
  var cell = sheet.getRange(sheet.getLastRow(),1); //Get a reference to current last cell in Column A

脚本在 sheet.getRange (... ) 自动运行时的函数

当我手动运行时,它可以工作

【问题讨论】:

  • 如果工作表不为空 - 您必须在触发器上检索错误的活动工作表。您能否提供有关您的工作表、触发器以及您错过的其他相关代码部分的一些背景信息? options的目的是什么?

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


【解决方案1】:

在没有“活动”电子表格(即在浏览器中可见的电子表格)的情况下运行时,“活动”工作表将指第一个工作表。使用Spreadsheet.getSheetByName() 而不是getActiveSheet()

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2012-02-26
  • 1970-01-01
  • 2016-01-02
  • 2018-10-17
  • 2017-04-22
  • 2011-03-16
  • 2019-01-17
  • 2012-09-04
相关资源
最近更新 更多