簡體   English   中英

訪問工作表時 Google Apps 腳本超時,但可以完成任務

[英]Google Apps Script timing out when accessing sheet, but accomplishes tasks

我有一個谷歌腳本正在運行,它從大約 5 個不同的電子表格中獲取數據並將它們添加到一個集中的電子表格中。 在 GAS 自行超時大約 5-6 分鍾后,該腳本給出了訪問集中式工作表的超時錯誤。 奇怪的是; 盡管在將某些值添加到某些選項卡時會出現超時錯誤,但它仍然可以始終如一地完成任務。 這是錯誤消息:

例外:訪問 ID 為 ########### 的文檔時,服務電子表格超時。

# 表示集中式電子表格的 ID。

我之前使用不同的工作表遇到過這個問題,原因有 3 個:

第一個:

我已經達到了Google Sheets 的實際限制,所以這使得工作表超級慢並且需要一些時間來加載,所以我猜當腳本運行時,它無法訪問工作表信息; 創建錯誤消息。

我試圖通過創建一個新副本來解決這個問題,它確實工作了一段時間。 然而,幾天后,它又開始發生了。 為了完全解決這個問題,我不得不將數據分成 2 個新工作表。

第二個:

該工作表沒有其他單元格那么多的單元格,但它執行了大量的導入范圍公式,當我手動打開工作表時加載工作表需要一段時間,並且腳本出現相同的錯誤。

這次復制這個問題實際上對我有用,你也可以嘗試添加一個Utilities.sleep(300000); 在調用 Google Sheet 的 URL 以允許它加載和獲取數據之后,然后讀取代碼的 rest。

最后一個:

這是一個實際的錯誤,並在一段時間后得到修復。 我找到了關於此的問題跟蹤器。

問題跟蹤器 1

問題跟蹤器 2

問題跟蹤器 3

您可以在此處報告問題。

由於我們必須猜測,因為您沒有提供腳本供我們評估,我猜您正在使用像這樣的范圍 sheet.getRange("A1:Z") 在公式中可以正常工作,但在放置一個工作表中最后一行之間的一堆空值一直到 maxrows。 因此,要糾正這種情況,請始終使用這些 forms sheet.getRange(1,1,sheet.getLastRow(),26)sheet.getRange("A1:Z" + sheet.getLastRow()) 當然這只是猜測。 如果您希望得到更好的答案,請在您的問題中添加更多詳細信息。

暫無
暫無

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

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