我写了一些代码来执行此电子表格打开时。主要检查除了名为“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