我是一个初学者,创建了一个脚本来扩展4个不同选项卡(A工作表,B工作表,C工作表,D工作表)上的列。
对于我自己(脚本作者)来说,该脚本在所有选项卡上都可以正常运行。
对于受邀的编辑者,该脚本似乎在第一个选项卡(A工作表)上正常运行,但在其他选项卡(B工作表,C工作表,D工作表)上无法正常工作。
我尝试添加似乎可以解决此问题的onEdit触发器,但是现在我收到“服务占用太多计算机时间一天”的错误。
8/27,我收到一条通知,指出“服务使用一天的计算机时间过多”错误发生了3次。当我查看我的执行日志时,我仅看到约17秒的触发时间。
我的问题是:
1)如果我的脚本代码中包含onEdit(e),是否需要一个onEdit触发器?
2)我是否需要在脚本代码中的其他位置(例如B,C和D脚本部分上方)添加onEdit(e)?
3)为什么该脚本对我本人(作者)有效,但对我具有编辑权限的用户无效。
4)为什么我的总执行持续时间远远低于90min / day的限制,为什么会收到“一天使用太多计算机服务”错误通知。
5)有人可以为我指出脚本的良好格式化规则吗?
谢谢!
function onEdit(e) {
var app = SpreadsheetApp;
var ss = app.getActiveSpreadsheet();
var Sh1 = ss.getSheetByName("A Sheet");
var clmnwdth = Sh1.getRange("G16:G27").getValues();
var maxi = Math.max.apply(Math, clmnwdth);
var clmn6 = Sh1.getRange("AB13:AE15");
var clmn56 = Sh1.getRange("X13:AE15");
var clmn456 = Sh1.getRange("T13:AE15");
var clmn3456 = Sh1.getRange("P13:AE15");
var clmn23456 = Sh1.getRange("L13:AE15");
var clmn2 = Sh1.getRange("L13:O15");
var clmn23 = Sh1.getRange("L13:S15");
var clmn234 = Sh1.getRange("L13:W15");
var clmn2345 = Sh1.getRange("L13:AA15");
Logger.log(maxi);
if (maxi == 0) {
Sh1.setColumnWidths( 12, 20, 5),clmn23456.setFontColor("white");
} else if (maxi == 1) {
Sh1.setColumnWidths( 12, 20, 5),clmn23456.setFontColor("white");
} else if (maxi == 2) {
Sh1.setColumnWidths( 16, 16, 5),Sh1.setColumnWidths( 12, 4, 100),clmn3456.setFontColor("white"),clmn2.setFontColor("black");
} else if (maxi == 3) {
Sh1.setColumnWidths( 20, 12, 5),Sh1.setColumnWidths( 12, 8, 100),clmn456.setFontColor("white"),clmn23.setFontColor("black");
} else if (maxi == 4) {
Sh1.setColumnWidths( 24, 8, 5),Sh1.setColumnWidths( 12, 12, 100),clmn56.setFontColor("white"),clmn234.setFontColor("black");
} else if (maxi == 5) {
Sh1.setColumnWidths( 28, 4, 5),Sh1.setColumnWidths( 12, 16, 100),clmn6.setFontColor("white"),clmn2345.setFontColor("black");
} else {
Sh1.setColumnWidths( 12, 20, 100),clmn23456.setFontColor("black");
}
var BSh1 = ss.getSheetByName("B Sheet");
var Bclmnwdth = BSh1.getRange("G16:G27").getValues();
var Bmaxi = Math.max.apply(Math, Bclmnwdth);
var Bclmn6 = BSh1.getRange("AB13:AE15");
var Bclmn56 = BSh1.getRange("X13:AE15");
var Bclmn456 = BSh1.getRange("T13:AE15");
var Bclmn3456 = BSh1.getRange("P13:AE15");
var Bclmn23456 = BSh1.getRange("L13:AE15");
var Bclmn2 = BSh1.getRange("L13:O15");
var Bclmn23 = BSh1.getRange("L13:S15");
var Bclmn234 = BSh1.getRange("L13:W15");
var Bclmn2345 = BSh1.getRange("L13:AA15");
Logger.log(Bmaxi);
if (Bmaxi == 0) {
BSh1.setColumnWidths( 12, 20, 5),Bclmn23456.setFontColor("white");
} else if (Bmaxi == 1) {
BSh1.setColumnWidths( 12, 20, 5),Bclmn23456.setFontColor("white");
} else if (Bmaxi == 2) {
BSh1.setColumnWidths( 16, 16, 5),BSh1.setColumnWidths( 12, 4, 100),Bclmn3456.setFontColor("white"),Bclmn2.setFontColor("black");
} else if (Bmaxi == 3) {
BSh1.setColumnWidths( 20, 12, 5),BSh1.setColumnWidths( 12, 8, 100),Bclmn456.setFontColor("white"),Bclmn23.setFontColor("black");
} else if (Bmaxi == 4) {
BSh1.setColumnWidths( 24, 8, 5),BSh1.setColumnWidths( 12, 12, 100),Bclmn56.setFontColor("white"),Bclmn234.setFontColor("black");
} else if (Bmaxi == 5) {
BSh1.setColumnWidths( 28, 4, 5),BSh1.setColumnWidths( 12, 16, 100),Bclmn6.setFontColor("white"),Bclmn2345.setFontColor("black");
} else {
BSh1.setColumnWidths( 12, 20, 100),Bclmn23456.setFontColor("black");
}
var CSh1 = ss.getSheetByName("C Sheet");
var Cclmnwdth = CSh1.getRange("G16:G27").getValues();
var Cmaxi = Math.max.apply(Math, Cclmnwdth);
var Cclmn6 = CSh1.getRange("AB13:AE15");
var Cclmn56 = CSh1.getRange("X13:AE15");
var Cclmn456 = CSh1.getRange("T13:AE15");
var Cclmn3456 = CSh1.getRange("P13:AE15");
var Cclmn23456 = CSh1.getRange("L13:AE15");
var Cclmn2 = CSh1.getRange("L13:O15");
var Cclmn23 = CSh1.getRange("L13:S15");
var Cclmn234 = CSh1.getRange("L13:W15");
var Cclmn2345 = CSh1.getRange("L13:AA15");
Logger.log(Cmaxi);
if (Cmaxi == 0) {
CSh1.setColumnWidths( 12, 20, 5),Cclmn23456.setFontColor("white");
} else if (Cmaxi == 1) {
CSh1.setColumnWidths( 12, 20, 5),Cclmn23456.setFontColor("white");
} else if (Cmaxi == 2) {
CSh1.setColumnWidths( 16, 16, 5),CSh1.setColumnWidths( 12, 4, 100),Cclmn3456.setFontColor("white"),Cclmn2.setFontColor("black");
} else if (Cmaxi == 3) {
CSh1.setColumnWidths( 20, 12, 5),CSh1.setColumnWidths( 12, 8, 100),Cclmn456.setFontColor("white"),Cclmn23.setFontColor("black");
} else if (Cmaxi == 4) {
CSh1.setColumnWidths( 24, 8, 5),CSh1.setColumnWidths( 12, 12, 100),Cclmn56.setFontColor("white"),Cclmn234.setFontColor("black");
} else if (Cmaxi == 5) {
CSh1.setColumnWidths( 28, 4, 5),CSh1.setColumnWidths( 12, 16, 100),Cclmn6.setFontColor("white"),Cclmn2345.setFontColor("black");
} else {
CSh1.setColumnWidths( 12, 20, 100),Cclmn23456.setFontColor("black");
}
var DSh1 = ss.getSheetByName("D Sheet");
var Dclmnwdth = DSh1.getRange("G16:G27").getValues();
var Dmaxi = Math.max.apply(Math, Dclmnwdth);
var Dclmn6 = DSh1.getRange("AB13:AE15");
var Dclmn56 = DSh1.getRange("X13:AE15");
var Dclmn456 = DSh1.getRange("T13:AE15");
var Dclmn3456 = DSh1.getRange("P13:AE15");
var Dclmn23456 = DSh1.getRange("L13:AE15");
var Dclmn2 = DSh1.getRange("L13:O15");
var Dclmn23 = DSh1.getRange("L13:S15");
var Dclmn234 = DSh1.getRange("L13:W15");
var Dclmn2345 = DSh1.getRange("L13:AA15");
Logger.log(Dmaxi);
if (Dmaxi == 0) {
DSh1.setColumnWidths( 12, 20, 5),Dclmn23456.setFontColor("white");
} else if (Dmaxi == 1) {
DSh1.setColumnWidths( 12, 20, 5),Dclmn23456.setFontColor("white");
} else if (Dmaxi == 2) {
DSh1.setColumnWidths( 16, 16, 5),DSh1.setColumnWidths( 12, 4, 100),Dclmn3456.setFontColor("white"),Dclmn2.setFontColor("black");
} else if (Dmaxi == 3) {
DSh1.setColumnWidths( 20, 12, 5),DSh1.setColumnWidths( 12, 8, 100),Dclmn456.setFontColor("white"),Dclmn23.setFontColor("black");
} else if (Dmaxi == 4) {
DSh1.setColumnWidths( 24, 8, 5),DSh1.setColumnWidths( 12, 12, 100),Dclmn56.setFontColor("white"),Dclmn234.setFontColor("black");
} else if (Dmaxi == 5) {
DSh1.setColumnWidths( 28, 4, 5),DSh1.setColumnWidths( 12, 16, 100),Dclmn6.setFontColor("white"),Dclmn2345.setFontColor("black");
} else {
DSh1.setColumnWidths( 12, 20, 100),Dclmn23456.setFontColor("black");
}
}