Home > database >  Iterate through column A and do until empty cell
Iterate through column A and do until empty cell

Time:08-31

My script is working but it times out. I am unsure as to what I can do to keep it from doing this.

function archived(e) {
 var sheet = SpreadsheetApp.getActive().getSheetByName('IVA');
 const targetSheet = e.source.getSheetByName('Archived Videos');
 const numColumnsToMove = 20;
 var sheetTo = SpreadsheetApp.getActive().getSheetByName('IVA');
  var myValues = sheetTo.getRange('A:A').getValues();
  var i;
  for (i = 0; i < myValues.length; i  ) {
    if (myValues[i][0] === '')
      return i   1;
 const rangeToMove = sheet.getRange(e.range.rowStart, 1, 1, numColumnsToMove);
 const values = rangeToMove.getValues();
 appendRowsV(targetSheet, values, 1);
 sheet.deleteRows(e.range.rowStart, 1);
 var lRow = sheet.getLastRow(); 
  var lCol = sheet.getLastColumn(), range = sheet.getRange(lRow,1,1,lCol);
  sheet.insertRowsAfter(lRow, 1);
  range.copyTo(sheet.getRange(lRow 1, 1, 1, lCol), {contentsOnly:false});
}
}

As an FYI my sheet has 1500 rows and 15 columns. don't know if that is important or not.

CodePudding user response:

Just in case. As far as I can tell from your code you're trying to append all data from the sheet 'IVA' at the bottom of the sheet 'Archived Videos'. It can be done this way:

function myFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var src_range = ss.getSheetByName('IVA').getDataRange();
  var dest_sheet = ss.getSheetByName('Archived Videos');
  var last_row = dest_sheet.getLastRow()   1;
  var dest_range = dest_sheet.getRange('A'   last_row);
  src_range.copyTo(dest_range);
}
  • Related