0

I have 2 separate onEdit functions that work individually, but I cannot figure out how to combine the two and have both operational. I know certain things like the destination constant has to change in the second script and I've looked into other posts but I still can't seem to get it. Any help is greatly appreciated.

First:

function onEdit(e) {  
  
  const src = e.source.getActiveSheet();
  const r = e.range;
  if (src.getName() != "Submit" || r.columnStart != 44 || r.rowStart == 1) return;
  const dest = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Master");
  src.getRange(r.rowStart,1,1,43).copyTo(dest.getRange(dest.getLastRow()+1,1,1,43),{contentsOnly:true});
  
}

Second:

function onEdit(e) {  
  
  const src = e.source.getActiveSheet();
  const r = e.range;
  if (src.getName() != "Watchlist" || r.columnStart != 11 || r.rowStart == 1) return;
  const dest = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Watchlist");
  src.getRange(r.rowStart,1,1).copyTo(dest.getRange(r.getLastRow()+1,1,1),{contentsOnly:true});
  src.getRange(r.rowStart,2,1).copyTo(dest.getRange(r.getLastRow()+1,2,1));
  src.getRange(r.rowStart,3,1).copyTo(dest.getRange(r.getLastRow()+1,3,1));
  src.getRange(r.rowStart,4,1).copyTo(dest.getRange(r.getLastRow()+1,4,1),{contentsOnly:true});
  src.getRange(r.rowStart,5,1).copyTo(dest.getRange(r.getLastRow()+1,5,1));
  src.getRange(r.rowStart,6,1).copyTo(dest.getRange(r.getLastRow()+1,6,1));
  src.getRange(r.rowStart,7,1).copyTo(dest.getRange(r.getLastRow()+1,7,1));
  src.getRange(r.rowStart,8,1).copyTo(dest.getRange(r.getLastRow()+1,8,1));
  src.getRange(r.rowStart,9,1).copyTo(dest.getRange(r.getLastRow()+1,9,1),{contentsOnly:true});
  src.getRange(r.rowStart,10,1).copyTo(dest.getRange(r.getLastRow()+1,10,1));
}
Krzysztof Dołęgowski
  • 2,583
  • 1
  • 5
  • 21
Golden
  • 3
  • 3

1 Answers1

0

Put both into a nested function under onEdit and call them.

function onEdit(e) {
  first();
  second();

function first() {
  const src = e.source.getActiveSheet();
  const r = e.range;
  if (src.getName() != "Submit" || r.columnStart != 44 || r.rowStart == 1) return;
  const dest = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Master");
  src.getRange(r.rowStart,1,1,43).copyTo(dest.getRange(dest.getLastRow()+1,1,1,43),{contentsOnly:true});
}

function second() {
  const src = e.source.getActiveSheet();
  const r = e.range;
  if (src.getName() != "Watchlist" || r.columnStart != 11 || r.rowStart == 1) return;
  const dest = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Watchlist");
  src.getRange(r.rowStart,1,1).copyTo(dest.getRange(r.getLastRow()+1,1,1),{contentsOnly:true});
  src.getRange(r.rowStart,2,1).copyTo(dest.getRange(r.getLastRow()+1,2,1));
  src.getRange(r.rowStart,3,1).copyTo(dest.getRange(r.getLastRow()+1,3,1));
  src.getRange(r.rowStart,4,1).copyTo(dest.getRange(r.getLastRow()+1,4,1),{contentsOnly:true});
  src.getRange(r.rowStart,5,1).copyTo(dest.getRange(r.getLastRow()+1,5,1));
  src.getRange(r.rowStart,6,1).copyTo(dest.getRange(r.getLastRow()+1,6,1));
  src.getRange(r.rowStart,7,1).copyTo(dest.getRange(r.getLastRow()+1,7,1));
  src.getRange(r.rowStart,8,1).copyTo(dest.getRange(r.getLastRow()+1,8,1));
  src.getRange(r.rowStart,9,1).copyTo(dest.getRange(r.getLastRow()+1,9,1),{contentsOnly:true});
  src.getRange(r.rowStart,10,1).copyTo(dest.getRange(r.getLastRow()+1,10,1));
}

}

idfurw
  • 5,727
  • 2
  • 5
  • 18
  • Thanks! That worked great. So simple and yet I was so far away. I really appreciate your help. – Golden Jul 30 '21 at 09:25