O Script da Planilha Google não está executando totalmente

Aug 27 2020

Estou usando um formulário do Google para acionar este script.
Quando executo o script com o botão Play, ele funciona perfeitamente.
Quando eu deixo o gatilho onsubmit executá-lo, a caixa de seleção é preenchida corretamente, mas a data setValue não.
Também tentei usar, setFormulamas obtive o mesmo resultado.

function AddCheckBox_toSchoolLunchForm(F) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form Responses 1")
  var criteria = SpreadsheetApp.DataValidationCriteria.CHECKBOX;
  var rule = SpreadsheetApp.newDataValidation().requireCheckbox().build();
  var range = sheet.getRange(sheet.getLastRow(), 8);
  range.clearContent();
  range.setDataValidation(rule);
  var FormulaCell = sheet.getRange(sheet.getLastRow(), 10);
  FormulaCell.setFormula("=DATEVALUE(A" + (sheet.getLastRow()) + ")");
}

O objetivo final é preencher a coluna J com a data formatada da tacada da coluna A cada vez que o formulário for enviado.
Preciso desse formato para executar um countIfs em outra planilha.

Outra opção seria incorporar de alguma forma uma tag de formato a este comando CountIfs para que correspondam.

=COUNTIFS('Form Responses 1'!J:J,A2,'Form Responses 1'!D:D,B2)

Respostas

ziganotschka Aug 27 2020 at 21:25

RESPOSTA ATUALIZADA

Se você tiver problemas para executar uma função no gatilho enquanto ela funciona como planejado sem um gatilho, verifique o seguinte:

  • Para arquivos / dados de formulário pesados, eles podem atrasar o preenchimento da planilha com novos dados de formulário.

    • Para evitar conflitos, dê à planilha algum tempo para preencher a nova linha antes de recuperar sheet.getLastRow()ou acessar os dados na planilha.

    • Você pode pontuar facilmente, por exemplo, com Utilities.sleep () .

  • Verifique se o seu gatilho foi instalado corretamente. Para isso, verifique se

    • o tipo de gatilho está correto
    • o gatilho está ligado à função correta
    • evite conflitos criando um novo gatilho ao renomear a função.
  • Verifique se o problema não é devido a restrições de gatilho

  • Esta é uma fonte de erro comum ao usar gatilhos simples.

  • Verifique se a conta sob cuja autorização o acionador está sendo executado tem permissões para editar a planilha / intervalo. Isso é importante para verificar quando o proprietário do gatilho é uma pessoa diferente da pessoa que executa o script manualmente.

  • Observe que para setFormula()isso não é necessário incorporar o =na fórmula

  • Observe que DATEVALUE()só retornará o resultado esperado quando a célula estiver formatada corretamente como uma data