Need help Copying and Editing sheet within the same Spreadsheet in Google Apps Script -
i need refining code. should copy specific worksheet in case sheet master copy based on rows on sheet maxes. rename sheet name on given row in sheet maxes. when try execute code insert blank page , adds end of spreadsheet. please forgive poorly written code new @ , trying make work. suggestions give gratefully appreciated. i'm not sure if there error within while loops or exactly.
function createworkouts(){ var ss = spreadsheetapp.getactivespreadsheet(); var namesource = ss.getsheetbyname("maxes"); var namecolumn = namesource.getrange("a2:a300"); var namestartrow = namesource.getrange("a2"); var trainingsheet = ss.getsheetbyname("master copy"); var trainingrange = trainingsheet.getrange("a1:m66"); var nameendrow = namesource.getlastrow(); var liftername; while (namestartrow <= nameendrow) { liftername = namesource.getcell(namestartrow, namecolumn); if (liftername == null) { errors.clear(); ss.getsheetsbyname(liftername) = liftername; if(errors.number() > 0) { errors.clear(); var newsheet = ss.insertsheet(); ss.renameactivesheet(liftername); ss.getsheetbyname(liftername); trainingrange.copyvaluestorange(liftername,1,1,16,66); liftername.copyvaluestorange(liftername,4,1,4,1); } } namestartrow = namestartrow + 1; } }
i modifyed code because didn't understood wanted exactlly, hope trick:
function createworkouts(){ var ss = spreadsheetapp.getactivespreadsheet(); var namesource = ss.getsheetbyname("maxes"); var namecolumn = namesource.getrange("a2:a").getvalues(); // it's table of table [][] var trainingsheet = ss.getsheetbyname("master copy"); var trainingrange = trainingsheet.getrange("a1:m66").getvalues(); // values give table of table for(var in namecolumn){ if(namecolumn[i][0]!=""){ // if blank skip try{ // try see if exist know... var lifter = ss.getsheetbyname(namecolumn[i][0]).activate(); logger.log("getting lifter sheet "+namecolumn[i][0]); } catch(err){ // didn't exist lets create :d var lifter = ss.insertsheet(namecolumn[i][0]); logger.log("creating lifter sheet "+namecolumn[i][0]); } spreadsheetapp.flush(); lifter.getrange("a1:m66").setvalues(trainingrange); // passing value created sheet } } }
i have demo sheet here.
please tell me if wanted (if not can give demo sheet of want , should @ end)
edit
here script formulas copy (it's not nice because forced define in script formulas are, have script analyse spreadsheet search formulas, but, has it's copy template, it's less ressource consuming not so.)
function createworkouts(){ var ss = spreadsheetapp.getactivespreadsheet(); var namesource = ss.getsheetbyname("maxes"); var namecolumn = namesource.getrange("a2:a").getvalues(); // it's table of table [][] var trainingsheet = ss.getsheetbyname("master copy"); var trainingrange = trainingsheet.getrange("a1:h21").getvalues(); // values give table of table var trainingformulasd = trainingsheet.getrange("d2:d21").getformulas(); // formulas copy var trainingformulash = trainingsheet.getrange("h2:h21").getformulas(); // others formulas copy for(var in namecolumn){ if(namecolumn[i][0]!=""){ // if blank skip try{ // try see if exist know... var lifter = ss.getsheetbyname(namecolumn[i][0]).activate(); logger.log("getting lifter sheet "+namecolumn[i][0]); } catch(err){ // didn't exist lets create :d var lifter = ss.insertsheet(namecolumn[i][0]); logger.log("creating lifter sheet "+namecolumn[i][0]); } spreadsheetapp.flush(); lifter.getrange("a1:h21").setvalues(trainingrange); // passing value created sheet lifter.getrange("d2:d21").setformulas(trainingformulasd); //passing formulas lifter.getrange("h2:h21").setformulas(trainingformulash); //passing formulas } } }
Comments
Post a Comment