Google apps script 谷歌应用程序脚本中的CopyTo获胜';t在1000多行上完成它的执行

Google apps script 谷歌应用程序脚本中的CopyTo获胜';t在1000多行上完成它的执行,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我使用的是originalRange.copyTo(rangeToCopyTo)基本上是为我拥有的数据行数下拉函数。CopyTo在数据行数较少的情况下可以正常工作,但当我看到有1000个结果的大型报告时,它不会完成。它看起来像是在拉取数据,但实际上并没有正确地填充单元格,它们是空白的。我尝试过使用SpreadsheetApp.flush(),但这不起作用,我还尝试过在调用Utilities.sleep(一些毫秒值)后直接让程序休眠。我已经被困了一段时间,所以任何帮助都将不胜感激。非常感谢。 红

我使用的是
originalRange.copyTo(rangeToCopyTo)
基本上是为我拥有的数据行数下拉函数。CopyTo在数据行数较少的情况下可以正常工作,但当我看到有1000个结果的大型报告时,它不会完成。它看起来像是在拉取数据,但实际上并没有正确地填充单元格,它们是空白的。我尝试过使用
SpreadsheetApp.flush()
,但这不起作用,我还尝试过在调用
Utilities.sleep(一些毫秒值)
后直接让程序休眠。我已经被困了一段时间,所以任何帮助都将不胜感激。非常感谢。

红色框是我的原始范围,这些单元格中充满了引用左侧数据的公式(我必须滚动,以便部分数据与行号一起显示在屏幕左侧)。蓝色框是我向下拖动到底部的范围(有1000行,所以想象一下蓝色框向下延伸1000行)。列G右侧的绿线仅从3行开始,因为这是从模板工作表复制的。既然我看到这行一直延伸到了底部,我知道函数几乎可以工作了,它只是没有在进入下一页之前填充所有我需要的公式,所以它会被跳过并留空

函数自动填充报告(工作表){
var rowsInSheet=sheet.getRange(“A5:A”).getLastRow();
//获取数据的最后一行号
var labelColumn=sheet.getRange(“A5:A”).getValues();
var lastRowOfData;
对于(变量i=0;i};是否要将公式复制下来?试试这个

  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getSheetByName('YOUR_SHEET');
  var range = sheet.getRange(5, 7, 3, 6);
  var targetRange = sheet.getRange(5, 7, sheet.getLastRow(), 6);
  range.autoFill(targetRange, SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES);

这会将公式一直复制到工作表的最后一行。“getRange()”方法接受的参数表示左上角单元格(G7-第5行,第7列)和右下角单元格(最后一行,第6列)的坐标。

是否将它们分成100行并循环10次以获得所有1000行?另外,你能分享一个例子吗?好的,我刚刚更新了它。也没有,我没有尝试过将它们分成100行增量。我想让它以这种方式工作以节省时间,因为有6分钟的执行限制,我希望在每次执行中完成尽可能多的报告。请在代码中编辑。很可能你的循环可以改进。我现在没有循环任何东西,我正在使用谷歌应用程序脚本中的copyTo函数。我将尝试循环,因为它似乎可能与copyTo函数有关。感谢您的回答,我将在明天早上尝试,并让您知道它是如何运行的。这样做,虽然它适用于像copyTo方法这样的少量数据,但会产生相同的结果。在我的例子中,它几乎立即填充2000行,所以问题一定是你的公式或其他东西。你的配方是什么?它是否调用某些外部服务?总共有6个不同的公式,每个单元格都有自己的公式,引用表中的值。公式相当大,这里有一个<代码>=如果($E5I)再次使用您的公式,它在不到一秒钟的时间内填充了2000行。您是否可以共享您的代码?另外,您是否可以确认您没有在任何地方使用Utilities.sleep()?