0
votes

Google Spreadsheet Code has been created to copy and paste a row of data into a target sheet in the same spreadsheet. However, when the row is being pasted into target sheet it is pasting it twice. I need to only have it pasted into the target location once... Not Twice.

Please See Sheet: https://docs.google.com/spreadsheets/d/1dL9FkxPawP9kvqJ4SwfRLqcv9HAUjHhZCfG9wxOwlDY/edit?usp=sharing

Script:

function onEdit(event)
{ 
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = event.source.getActiveSheet();
  var r = event.source.getActiveRange();
  var curDat = new Date();
 
  var valSent = r.getValue().toString().toLowerCase();
  
  if(s.getName().toString() == "Referrals 2015" && r.getColumn() == 15 && valSent == "sent" && valSent!="")
  {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("Auths and F&D");
    
    var target = targetSheet.getRange(targetSheet.getLastRow()+1, 1);
    var target1 = targetSheet.getRange(targetSheet.getLastRow()+1, 3);
    var target2 = targetSheet.getRange(targetSheet.getLastRow()+1, 4);
    var target3 = targetSheet.getRange(targetSheet.getLastRow()+1, 5);    
    var tRow =targetSheet.getLastRow();
    
    s.getRange(row,1,1,2).copyTo(target);
    s.getRange(row,5,1, 1).copyTo(target1);
    s.getRange(row,12,1, 1).copyTo(target2);
    s.getRange(row,13,1, 2).copyTo(target3);
    targetSheet.getRange(tRow+1, 7).setValue(curDat);
    targetSheet.getRange("B" +targetSheet.getLastRow()+3+":Z"+targetSheet.getLastRow()+3).copyTo(targetSheet.getRange("B" + targetSheet.getLastRow()), {formatOnly: true});  
    targetSheet.getRange(tRow+1,1,1,7).setBackgroundColor("#ffff00");
    
    r = null;
    s = null;
    valSent="1";
  }
}
1

1 Answers

0
votes

onEdit() runs automatically as a simple trigger. If you have it set up in the scripts triggers from Resources>This project triggers, you need to remove it as it will run once as a simple trigger and again as an installed trigger.