Google Листы: функция скрипта для очистки ячеек после отправки формы

#google-apps-script #google-sheets

Вопрос:

ОК. Извините, я не очень хорошо пишу сценарии. Я смотрел на других и просто не совсем понимаю. У меня есть следующий сценарий, и я хотел бы, чтобы он очистил ячейки формы после отправки формы. Любая помощь приветствуется.

 function submitData() {
  var ss        = SpreadsheetApp.getActiveSpreadsheet();
  var formSS    = ss.getSheetByName("Form"); //Form Sheet
  var datasheet = ss.getSheetByName("Data"); //Data Sheet
  
  //Input Values
  var values = [[formSS.getRange("C5").getValue(),
                 formSS.getRange("D5").getValue(),
                 formSS.getRange("E5").getValue(),
                 formSS.getRange("F5").getValue(),
                 formSS.getRange("G5").getValue(),
                 formSS.getRange("H5").getValue(),
                 formSS.getRange("I5").getValue()]];
  datasheet.getRange(datasheet.getLastRow() 1, 1, 1, 7).setValues(values);
  
}
 

Ответ №1:

 function submitData() {
  var ss = SpreadsheetApp.getActive();
  var fsh = ss.getSheetByName("Form"); //Form Sheet
  var dsh = ss.getSheetByName("Data"); //Data Sheet
  var values = fsh.getRange(5, 3, 1, 7).getValues();
  dsh.getRange(dsh.getLastRow()   1, 1, 1, 7).setValues(values);
  fsh.getRange(5, 3, 1, 7).clearContent();
}
 

Я бы, наверное, переписал его так:

 function submitData() {
  const ss = SpreadsheetApp.getActive();
  const fsh = ss.getSheetByName("Form"); //Form Sheet
  const dsh = ss.getSheetByName("Data"); //Data Sheet
  const frg = fsh.getRange(5, 3, 1, 7);
  const vs = frg.getValues();
  dsh.getRange(dsh.getLastRow()   1, 1, vs.length, vs[0].length).setValues(vs);
  frg.clearContent();
}
 

Комментарии:

1. Спасибо! Я действительно ценю это!