私は簡単な Google Apps スプレッドシート スクリプトを作成しました。このスクリプトは、いくつかの行で詳細を取得し、それらを 1 つのリストに変換します。すべて非常に簡単です。問題は、スクリプトがランダムなポイントで停止し続け、ループが終了しないことです。エラー メッセージは表示されず、スクリプト エディターの上部にあるメッセージは、明らかに停止しているにもかかわらず、実行中であることを示しています。
最初は何らかの理由で調整されているのではないかと思っていましたが、ランダムな停止ポイント (ソース シートの 6x 行、7x 行、時には数百行) とエラー メッセージの欠如は、そうではないことを示唆しています。
なぜこれが起こっているのかを理解するのを手伝ってくれる人はいますか? スクリプト エディタ ウィンドウから実行しているからでしょうか。アプリ スクリプトの実行が停止する可能性がある他の理由 (ネットワークの問題など) はありますか。
ありがとう!
function convertTrimsToList(){
var ss = SpreadsheetApp.openById("[REDACTED]");
var sheet = ss.getSheets()[0];
var newss = SpreadsheetApp.create("MMT List");
var newsheet = newss.getSheets()[0];
x = 1;
z = 1;
i = 1;
q = 1;
while (sheet.getRange(x,1).getValue() != "")
{
sheet.getRange(1,6).setValue("Processing row " + x);
y = 5;
while (sheet.getRange(x,y).getValue() != "")
{
sheet.getRange(1,7).setValue("Processing row " + y);
if (x != 1)
{
if (y == 5 && sheet.getRange(x,1).getValue() != sheet.getRange((x-1),1).getValue())
{
i++
}
}
newsheet.getRange(z,1).setValue(i);
newsheet.getRange(z,2).setValue(q);
newsheet.getRange(z,3).setValue(sheet.getRange(x,y).getValue());
z++
y++
}
if (x != 1)
{
if (sheet.getRange(x,3).getValue() != sheet.getRange((x-1),3).getValue())
{
q++
}
}
else
{
q++
}
x++
}
}