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

问题描述 投票:0回答:2

我试图使用脚本编辑器允许我每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列中。

google-apps-script google-sheets google-sheets-formula
2个回答
0
投票

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


0
投票

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

function recordChanges() {
  var url = 'LINK TO MY SHEET';   
  var ss = SpreadsheetApp.openByUrl(url);
  var sh = ss.getSheetByName('Sheet1'); 
  var range = sh.getRange("A1"); 
  var firstRow = range.getDataRegion(SpreadsheetApp.Dimension.COLUMNS);
  var values = firstRow.getValues();
  values[0].push(values[0][0]);
  sh.getRange(1, 1, 1, firstRow.getLastColumn() + 1).setValues(values);
}
© www.soinside.com 2019 - 2024. All rights reserved.