kxcoze

queue_up_gs

Jul 10th, 2023 (edited)
1,864
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const RESTRICTEDROWS = new Set([1, 2]);
  2.  
  3. function areEqual(r1, r2) {
  4.   // Func for checking equality of two ranges
  5.   return r1.getDataSourceUrl() === r2.getDataSourceUrl()
  6. }
  7.  
  8. function onEdit(e) {
  9.  
  10.   if (e.value == undefined || RESTRICTEDROWS.has(e.range.getRow()) ) {
  11.     // If the event is not EDITING for the value of cell then exit
  12.     return;
  13.   }
  14.   // Initial range
  15.   const range = e.range;
  16.   // Current sheet for working
  17.   const ss = range.getSheet();
  18.   // Total amount of all columns
  19.   const MAXCOLUMNS = ss.getMaxColumns();
  20.   const STARTINGROW = 2;
  21.   // Index of the initial row
  22.   var idx_init_row = range.getRow();
  23.  
  24.   // Initial row
  25.   var initRange = ss.getRange(idx_init_row, 1, 1, MAXCOLUMNS);
  26.   Logger.log(initRange.getA1Notation());
  27.   // Copy of values from the initial row
  28.   const values = initRange.getValues();
  29.   // Cell of first row for column of initial range
  30.   var top_cell_range = ss.getRange(1, range.getColumn());
  31.   // Delete the initial row
  32.   ss.deleteRow(idx_init_row);
  33.  
  34.   // Insert row before starting row;
  35.   ss.insertRowBefore(STARTINGROW);
  36.   // First row
  37.   var targetRange = ss.getRange(STARTINGROW, 1, 1, MAXCOLUMNS);
  38.   Logger.log(targetRange.getA1Notation());
  39.   // Setting values for the first row
  40.   targetRange.setValues(values);
  41. }
Advertisement
Add Comment
Please, Sign In to add comment