Highland Ranger
Highland Ranger

Reputation: 15

Google Sheets: Script function to clear cells after a form is submitted

OK. I'm sorry, I'm not very good at scripting. I've looked at others and I just don't completly understand. I have the following script and I would like it to clear the form cells after it submits the form. Any help is appreciated.

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);
  
}

Upvotes: 0

Views: 135

Answers (1)

Cooper
Cooper

Reputation: 64040

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();
}

I'd probably rewrite it like this:

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();
}

Upvotes: 1

Related Questions