Как запустить несколько сценариев? - PullRequest
0 голосов
/ 08 января 2019

Может кто-нибудь помочь мне с этим? Я хочу, чтобы все это работало, но работает только первое.

function onEdit() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var mysheet = ss.getSheetByName("Sheet1");
  var activeCell = ss.getActiveCell().getA1Notation();

  if( activeCell == "A1" )
  {
    for(var i=0;i<50;i++)
    {
      if( i%2 == 0 )
        mysheet.getRange("A1:M1").setBackground("RED");
      else
        mysheet.getRange("A1:M1").setBackground("WHITE");

      SpreadsheetApp.flush();
      Utilities.sleep(500);
    }
  }
}


function onEdit1() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var mysheet = ss.getSheetByName("Sheet1");
  var activeCell = ss.getActiveCell().getA1Notation();

  if( activeCell == "A2" )
  {
    for(var i=0;i<50;i++)
    {
      if( i%2 == 0 )
        mysheet.getRange("A2:M2").setBackground("RED");
      else
        mysheet.getRange("A2:M2").setBackground("WHITE");

      SpreadsheetApp.flush();
      Utilities.sleep(500);
    }
  }
}

function onEdit2() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var mysheet = ss.getSheetByName("Sheet1");
  var activeCell = ss.getActiveCell().getA1Notation();

  if( activeCell == "A3" )
  {
    for(var i=0;i<50;i++)
    {
      if( i%2 == 0 )
        mysheet.getRange("A3:M3").setBackground("RED");
      else
        mysheet.getRange("A3:M3").setBackground("WHITE");

      SpreadsheetApp.flush();
      Utilities.sleep(500);
    }
  }
}

Я хочу 3 мигать

1 Ответ

0 голосов
/ 08 января 2019

Если вы хотите, чтобы все три функции выполнялись при редактировании, вызывайте их все из одной функции.

onEdit() {
    function1();
    function2();
    function3();
}

function1() {
    // Do something
}

function2() {
    // Do something
}

function3() {
    // Do something
}

EDIT

Вот гораздо более короткий способ сделать все три:

function onEdit() {

    var spreadsheet = SpreadsheetApp.getActive();
    var sheet = spreadsheet.getActiveSheet();
    var cell = spreadsheet.getActiveCell();

    var col = cell.getColumn();
    var row = cell.getRow();

    if (col === 1 && sheet.getName() === 'Sheet1') {
    // If the edited cell is in column A (1) and on the correct sheet

        for (var num = 0; num < 50; num++) {

            var colour = num%2 === 0
                ? 'RED'
                : 'WHITE';
            // Using ? and : like this is called a ternary operation. It's a
            // shorter form of if. ifStatement ? true : false.

            sheet.getRange('A' + row + ':M' + row).setBackground(colour);
            // Get the range for the edited row and set the bg colour

            SpreadsheetApp.flush();
            Utilities.sleep(500);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...