如何使函数在最后一行执行公式?

时间:2019-04-13 05:20:54

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

我正在尝试使用脚本编辑器让我每24小时执行一次存储在单元格A1中的功能。我希望将生成的值存储在单元格A2中,然后在下次脚本运行时,我希望将该值存储在A3中,这样就可以了。我遇到的问题是我无法获取代码来执行此操作。

我尝试编辑脚本的最后几行,但无法正常工作。

function recordChanges() {
  var url = 'LINK TO MY SHEET';   
  var ss = SpreadsheetApp.openByUrl(url);
  var sh = ss.getSheetByName('Sheet1'); 
  var range = sh.getRange("A1");    
  var values = range.getValues();
  var lastRow = sh.getLastRow();

  if (values[0][0] != values[1][0]) {
    sh.insertRowAfter(lastRow);
    sh.getRange().setValue(values[0][0]);
  }
}

我希望脚本存储该值,并且下次运行该脚本时,我希望它将该值存储在最后一个存储值下方的单元格上。如果您可以将新值的生成日期放置在同一行中但在B列中,则可以得到加分。

2 个答案:

答案 0 :(得分:0)

getLastRow仅返回包含内容的工作表的最后一行。

答案 1 :(得分:0)

我将您的问题解释为“如何将A1的值复制到第1行中的下一个空单元格?”抱歉,如果我误解了您的问题,请告诉我。 您不清楚“在最后一行执行公式”是什么意思;请澄清甚至显示公式。这段代码不会更改A1:我假设您已经以某种方式更改了A1的值,而您要做的就是将当前值复制到第一行的末尾。

while ziplen != 5 or not all(map(str.isdigit, zipcode)):