Estou tentando atualizar uma célula com a data e a hora em que um intervalo específico de células foi editado.
Estou mexendo no código a seguir, mas depois de verificar o log de execução, o gatilho falhou em todas as ocasiões.
Onde estou errando?
function onEdit(e) {
var range1 = e.range.getSheet().getRange("D260:D264");
var range2 = e.range.getSheet().getRange("P260:P264");
var range3 = e.range.getSheet().getRange("S260:S264");
var range4 = e.range.getSheet().getRange("AE260:AE264");
var range5 = e.range.getSheet().getRange("AJ260:AJ264");
var range6 = e.range.getSheet().getRange("D53");
var range7 = e.range.getSheet().getRange("N53");
if (e.range.intersects(range1) || e.range.intersects(range2) || e.range.intersects(range3) || e.range.intersects(range4) || e.range.intersects(range5) || e.range.intersects(range6) || e.range.intersects(range7)) {
var dateCell = e.range.getSheet().getRange("W247");
dateCell.setValue(new Date());
}
}
Detectando intervalo de edição no Google Apps Script
O motivo desse erro é porque e.range não tem um Método de intersect. Eu acho que você está tentando verificar o intervalo se ele está dentro da sua lista de intervalos para observar. Basicamente, no Google Apps Script, quando você usa getRange(), você obterá um Objeto de intervalo e não um conjunto, portanto, você precisará de algo para obter os valores que pode usar para comparação. Verifique a solução que criei, você pode usá-la como referência em seu projeto, a diferença com isso é que não listei todos os intervalos na matriz apenas o suficiente para fazer alguns testes.
O que o código faz é ter uma lista de Ranges para comparar, seus ranges observados. Eu obtenho a Notação A1 do Range editado, verifico se o Range que está sendo editado está com o range observado e então executo o setValue().
Solução Oferecida
Referência:
Google Apps Script - Intervalo
Google Apps Script - Gatilho Simples
Lembrete útil: ao verificar Simple Triggers, também é útil aprender sobre o Execution Log que faz parte da plataforma Google Apps Script, dessa forma você pode aprender mais sobre os problemas que seu código encontrou. Ele fica no lado esquerdo do seu navegador ao abrir o Google Apps Script. Na barra de navegação, você pode clicar em Execution para verificar as informações da execução.