Apps 脚本极其缓慢或无休止地“准备执行...”

And*_*rea 4 javascript performance execution google-sheets google-apps-script

我在我的 Google Sheets 文件上写了一个非常简单的代码。这是目的:

  1. 从StaticSheet中保存一些需要在DynamicSheet中复制的单元格值(所有的Copyxxx)。
  2. 获取用户手动插入的一个特定单元格的值。
  3. 输入一个仅用于增加指标的 While 循环,并获取我想要复制以前保存的那些值的行数。
  4. 复制此行上的这些值但不同的列。

问题是,在我告诉它之后,它似乎在大多数情况下甚至不运行脚本。有趣的是,有时它会起作用,速度非常慢,但它会起作用几分钟。在它再次停止工作之后。

你能告诉我我在这里遗漏了什么吗?

function Copy_Static_on_Dynamic() {
  var app = SpreadsheetApp;
  var ss = app.openById("xxxxyy--------yyzzzz")
  var StaticSheet = ss.getSheetByName("DEAT Price");
  var DynamicSheet = ss.getSheetByName("DEAT Price + TEST");
  var CopySKU = StaticSheet.getRange(5,1,40);
  var CopyPrices = StaticSheet.getRange(5,3,40,4);
  var CopyUsage = StaticSheet.getRange(5,8,40);
  var Week_1 = StaticSheet.getRange(2,4).getValues();
  var i = 1;
  Logger.clear();
  while(DynamicSheet.getRange(i,3).getValues() != Week_1)
  {
   Logger.log(i);
    i+=1;
  }
  CopySKU.copyTo(DynamicSheet.getRange(i,4,40));
  CopyPrices.copyTo(DynamicSheet.getRange(i,6,40,4));
  CopyUsage.copyTo(DynamicSheet.getRange(i,11,40));
}
Run Code Online (Sandbox Code Playgroud)

Ami*_*wal 6

如果您在 Apps 脚本编辑器中看到“准备执行”消息,您可以重新加载浏览器窗口并再次运行该功能。该计划可能会消失。