簡體   English   中英

Google Apps電子表格腳本會隨機停止?

[英]Google Apps Spreadsheet Scripts Randomly Stopping?

我編寫了一個簡單的Google Apps Spreadsheet腳本,該腳本在某些行中獲取詳細信息並將其轉換為單個列表; 一切都很簡單。 問題是腳本在隨機點停止,循環永遠不會完成 - 沒有錯誤消息,腳本編輯器頂部的消息仍然表明它正在運行,當它已經明顯停止時。

我最初認為它可能是以某種方式受到限制,但是隨機停止點(有時在源表行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++ } }

你的代碼效率很低。 每次撥打服務的費用都很高。 這可能是您的代碼突然停止的原因。 一種更有效的方法是將所有數據讀入2D數組,然后在兩個嵌套循環中一次性寫回電子表格。

事實證明,這與此處發生的問題相同: 在Google Apps腳本中超過最長執行時間 - 不確定為什么我沒有收到錯誤消息,但似乎是同樣的問題,所以我重構了我的代碼糾正它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM