I am trying to move the contents of column D to column A and keep them as formulas or values. The code below works but it takes FOREVER!!
I used this answer to put the values and formulas into an array: How do I copy a row with both values and formulas to an array?
I used this suggestion to separate them out based on their type: https://productforums.google.com/forum/#!topic/docs/JtcH-U3qC7s
var ss = SpreadsheetApp.getActiveSheet();
var formulas = ss.getRange("D2:D").getFormulas();
var values = ss.getRange("D2:D").getValues();
var merge = new Array(formulas.length);
for( var i in formulas ) {
merge[i] = new Array(formulas[i].length);
for( var j in formulas[i] )
merge[i][j] = formulas[i][j] !== '' ? formulas[i][j] : values[i][j];
}
for (k=0;k<merge.length;k++){
var rowRange = ss.getRange("A2");
var str = merge[k].toString();
var formulaChecker = str.substring(0,1);
if (formulaChecker == "="){
rowRange.offset(k, 0).setFormula(merge[k]);
}else{
rowRange.offset(k, 0).setValue(merge[k]);
}
}
Because it runs so slowly I feel like I missed something.
Is there a way to make it more efficient and run faster?