onEdit в скрипте против триггера onEdit / скрипт ширины столбца не работает для редакторов - PullRequest
0 голосов
/ 29 августа 2018

Я новичок и создал скрипт для расширения столбцов на 4 разных вкладках (A Sheet, B Sheet, C Sheet, D Sheet).

Для себя, автора скрипта, скрипт отлично работает на всех вкладках.

Для приглашенных редакторов сценарий работает нормально на первой вкладке (A Sheet), но не работает на других вкладках (B Sheet, C Sheet, D Sheet).

Я попытался добавить триггер onEdit, который, похоже, решает эту проблему, но теперь я получаю сообщение об ошибке «Служба использует слишком много компьютерного времени на один день».

27.08. Я получил уведомление о том, что ошибка «Служба использует слишком много компьютерного времени для одного дня» возникала 3 раза. Когда я проверяю журналы My Executions, я вижу только около 17 секунд времени запуска.

Мои вопросы:

1) Если в моем коде скрипта есть onEdit (e), нужен ли мне триггер onEdit?

2) Нужно ли добавлять onEdit (e) в код моего скрипта в большем количестве мест, например над секциями скриптов B, C и D?

3) Почему скрипт работает для меня, автора, а не для пользователей с правами на редактирование.

4) Почему я получаю уведомления об ошибке «Служба использует слишком много компьютерного времени в течение одного дня», когда общая продолжительность моей работы значительно ниже предела 90 минут / день.

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");
  } 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...