2017-09-01 21 views
0

在Google表格中,我有一個廣泛的OnOpen腳本(viewable here)來刷新工作簿中多張工作表上的數據。所有腳本行都需要一段時間才能執行,即導入新的原始數據,然後針對該新數據執行五個不同的唯一查詢,從而更新五張表中的數據。當Google表格打開時,用戶會看到兩個連續的彈出式黃色「工作」框,然後是五個後續進度條(每個查詢都會執行它們)。 這一切都需要相當長的一段時間。我想補充腳本例程以通知用戶「所有數據現在都刷新並準備好查看。」放在腳本末尾的一個簡單的MessageBox(「Data now refreshed」)似乎會在所有腳本命令實際完成之前彈出,因此消息框會給出誤導性信息,我認爲它也會中斷某些腳本行的執行,直到「OK 「,因此,MessageBox似乎不起作用,所以我正在尋找一種方法來確認,在通知用戶它沒關係之前,所有腳本行(以及所有唯一查詢)實際上都已完成開始查看數據感謝如何在完成Google腳本時向用戶發佈

回答

0

放置一個SpreadsheetApp.flush()「未完成」警告框之前,該flush()方法:。

適用所有待處理的電子表格更改SPRE。有時會將廣告表格操作捆綁在一起以提高性能,例如對Range.getValue()進行多次調用時。但是,有時您可能希望確保所有掛起的更改都立即生效,例如將腳本正在執行的用戶數據顯示出來。

+0

對不起,沒有工作。這兩行代碼被添加到腳本的最後。但。 msgBox在所有查詢完成之前仍然出現。 SpreadsheetApp.flush() Browser.msgBox('現在所有數據都刷新了,點擊OK檢查各個標籤。'); –

+0

請嘗試使用[alert](https://developers.google.com/apps-script/reference/base/ui#alert(String))'SpreadsheetApp.getUi().alert()'而不是msgBox。也可能希望將SpreadsheetApp.flush()添加到腳本中的其他位置,以使事物移動。我遇到了同樣的問題,並在一些地方使用'ui.alert()'+'flush()'來修復它。如果這不適合你,可能需要發佈你的代碼 –

+0

謝謝。我會試一試。之後我發現了一些解決方法,但仍然不及時提供「確定」警報。 –

相關問題