我寫了一些代碼來執行此電子表格打開時。主要檢查除了名爲「Main」的表以外是否還有工作表,如果有,請刪除除「Main」之外的所有工作表。 (「Main」表將始終顯示第一張表格。)然後清除「Main」表格中的任何內容,並將每次都替換爲最終可以在代碼中讀取的內容。對於應用程序腳本執行得太快的代碼...?
// This creates a menu when this spreadsheet is opened.
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [];
var numSheets = ss.getSheets();
while (numSheets.length > 1){
ss.setActiveSheet(numSheets[1]);
ss.deleteActiveSheet();
var numSheets = ss.getSheets();
}
ss.setActiveSheet(numSheets[0]);
ss.getActiveSheet().getDataRange().clear();
menuEntries.push({name: "Create Folder Structure", functionName: "folderStruc"});
ss.addMenu("Click here when done.", menuEntries);
ss.getRange('A1:B1').mergeAcross().setValue('TA');
ss.getRange('A2').setValue('First Name');
ss.getRange('B2').setValue('Last Name');
ss.getRange('C2').setValue('Email');
ss.getRange('D2').setValue('Classes');
}
腳本完美的作品時,我通過線調試線。當只有「主」表單時,它也可以很好地工作。但是,當有多個工作表,我打開電子表格,它將通過while循環運行,並刪除除「主」所有的牀單,但它會掛在「主」之一,只是顯示「正在加載...」和不顯示任何細胞或任何東西。自定義菜單出現。它還在頂部的黃色框中顯示「工作」。
從循環中刪除「ss.getSheets()」?如果你只有兩張牀單,你會發現問題。我懷疑問題是網絡。我懷疑你的循環中的一些函數很慢,因爲他們進行網絡調用....或者你可以通過觸發器刪除它們。 – eddyparkinson
Serge在下面解答瞭解決方案。但你是對的,這是一個網絡問題。 – PhysLabTsar