脚本中的onEdit与onEdit触发器/列宽脚本不适用于编辑器

时间:2018-08-29 19:14:42

标签: google-apps-script google-sheets

我是一个初学者,创建了一个脚本来扩展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");
  } 
}

0 个答案:

没有答案