Google-sheets – Script to copy values only

google sheetsgoogle-apps-scriptgoogle-apps-script-triggers

I have a script which copies new form data from one sheet to another. However, I only want the values and not the formatting to paste.

Here is the script:

function onFormSubmit() {
  // moves a row from a sheet to another when a magic value is entered in a column
  // adjust the following variables to fit your needs
  // see https://productforums.google.com/d/topic/docs/ehoCZjFPBao/discussion

  var sheetNameToWatch = "Form Results";

  var sheetNameToMoveTheRowTo = "Job List";

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getActiveCell();


  if (sheet.getName() == sheetNameToWatch && range.getColumn()) {

    var targetSheet = ss.getSheetByName(sheetNameToMoveTheRowTo);
    var targetRange = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    sheet.getRange(range.getRow(), 1, 1, 
      sheet.getLastColumn()).copyTo(targetRange), {contentsOnly:true};
  }
}

Any ideas?

Best Answer

Your last line has a mislaid close-paren. Rather than:

sheet.getRange(range.getRow(), 1, 1, 
  sheet.getLastColumn()).copyTo(targetRange), {contentsOnly:true};

the copyTo "options"-object parameter must be inside the function's parameter list:

sheet.getRange(range.getRow(), 1, 1, 
  sheet.getLastColumn()).copyTo(targetRange, {contentsOnly:true});