Como posso aplicar um script a apenas uma planilha específica de uma planilha?


9

Eu tenho uma planilha com duas folhas chamadas Robine Lucy. Criei / encontrei / alterei um script para classificar os dados na planilha toda vez que adiciono alguns dados à coluna A:

function onEdit(event){

  var sheet = event.source.getActiveSheet();
  var editedCell = sheet.getActiveCell();

  var columnToSortBy = 1;
  var tableRange = "a2:I30";
    if(editedCell.getColumn() == columnToSortBy){   
   var range = sheet.getRange(tableRange);
   range.sort( { column : columnToSortBy } );
  }
}

Esse script funciona bem, mas eu só quero que seja aplicado na primeira planilha Robin,. Os dados da segunda planilha,, Lucynão são os mesmos, por isso vou criar outro script para um intervalo diferente para esse, assim que eu resolver esse problema.

Acho que preciso usar o getSheetByName("Robin")mas não consigo fazê-lo funcionar.

Respostas:


12

Existem algumas maneiras de fazer isso. Primeiro, você precisa declarar a planilha:

var ss = SpreadsheetApp.getActiveSpreadsheet();  

Em segundo lugar, declare a primeira planilha como esta:

var sh0 = ss.getSheets()[0];

ou assim:

var sh0 = ss.getSheetByName("Robin");

Em seguida, defina a célula ativa e recupere o índice da coluna:

var editedCell = sh0.getActiveRange().getColumnIndex();

E faça a lógica para o tipo:

var columnToSortBy = 1;
var tableRange = "a2:I30";

if(editedCell == columnToSortBy){   
  var range = sheet.getRange(tableRange);
  range.sort( { column : columnToSortBy } );
}

Código completo, um pouco reduzido:

function onEdit(){
  var sh0 = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
  var editedCell = sh0.getActiveRange().getColumnIndex();

  if(editedCell == 1) { 
    var range = sh0.getRange("A2:I30");
    range.sort({column: 1});
  }
}

@oohrogerplamer Você pode aceitar a resposta marcando-a, consulte esta área de perguntas frequentes . De nada.
Jacob Jan Tuinstra

Como posso fazer isso para classificar por uma coluna, mas também classifica as outras colunas para que todos os dados ainda correspondam nas linhas?
31515 moobot

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.