I am trying to copy some columns (e.g., A, D, G, H, I, L) in one sheet to different columns in another sheet. As an example, column A in my source sheet becomes column K in my destination sheet, column B in my source sheet becomes column A in my destination sheet, and so on.
I previously managed to copy a single row, but I would like to copy all of the rows from my source sheet. Now I am getting an error related to the number of rows in the data and the number of rows in the range. Also, I suspect my code is fairly inelegant, causing a longer processing time. I am still learning app script so help would be appreciated!
function Publish(){
let sourceSpreadsheet = SpreadsheetApp.getActive();
let sourceSheet = sourceSpreadsheet.getSheetByName("SourceTest");
let slrow = sourceSheet.getLastRow();
let destSheet = SpreadsheetApp.openById('----').getSheetByName("DestinationTest");
let sourceA = sourceSheet.getRange("A2:A").getValues()
let sourceB = sourceSheet.getRange("B2:B").getValues()
let sourceC = sourceSheet.getRange("C2:C").getValues()
let sourceD = sourceSheet.getRange("D2:D").getValues()
let sourceE = sourceSheet.getRange("E2:E").getValues()
let sourceF = sourceSheet.getRange("F2:F").getValues()
let sourceG = sourceSheet.getRange("G2:G").getValues()
let sourceH = sourceSheet.getRange("H2:H").getValues()
let sourceJ = sourceSheet.getRange("J2:J").getValues()
let sourceK = sourceSheet.getRange("K2:K").getValues()
let sourceL = sourceSheet.getRange("L2:L").getValues()
let sourceR = sourceSheet.getRange("R2:R").getValues()
let sourceS = sourceSheet.getRange("S2:S").getValues()
let sourceT = sourceSheet.getRange("T2:T").getValues()
const startRow = 178
destSheet.getRange(startRow,1).setValues(sourceB);
destSheet.getRange(startRow,2).setValues(sourceC);
destSheet.getRange(startRow,3).setValues(sourceD);
destSheet.getRange(startRow,4).setValues(sourceE);
destSheet.getRange(startRow,5).setValues(sourceT);
destSheet.getRange(startRow,7).setValues(sourceG);
destSheet.getRange(startRow,8).setValues(sourceJ);
destSheet.getRange(startRow,10).setValues(sourceS);
destSheet.getRange(startRow,11).setValues(sourceA);
destSheet.getRange(startRow,12).setValues(sourceF);
destSheet.getRange(startRow,13).setValues(sourceH);
destSheet.getRange(startRow,14).setValues(sourceK);
destSheet.getRange(startRow,15).setValues(sourceL);
destSheet.getRange(startRow,16).setValues(sourceR);
Annie Schmidt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.