Quantcast
Channel: Hot Weekly Questions - Web Applications Stack Exchange
Viewing all articles
Browse latest Browse all 9782

App script to update the data changes to multiple sheets

$
0
0

I made a script to combine data from Sheet1 and Sheet2 into Sheet "Master".

If there is a data change in the "Master" sheet, I write the script to update the data changes to each sheet.

Sheet1 and Sheet2

Source

//combine data from multiple sheetsfunction MergeSheets() {  var app = SpreadsheetApp;  var ss = app.getActiveSpreadsheet();  var data = null;  var RetrieveSheet = null;  var PasteSheet = ss.getSheetByName("Master");  var sheets = ['Sheet1','Sheet2'];  PasteSheet.getRange(2,1,PasteSheet.getLastRow(),PasteSheet.getLastColumn()).clear();  for (var i =0; i<sheets.length; i++){    RetrieveSheet = ss.getSheetByName(sheets[i]);    if (RetrieveSheet.getName() != 'Master'){      data = RetrieveSheet.getRange(2,1,RetrieveSheet.getLastRow(),RetrieveSheet.getLastColumn());       data.copyTo(PasteSheet.getRange(parseInt(PasteSheet.getLastRow())+1,1));    }  }}//update data changes to each sheetsfunction updateBasedSheet(){  var master = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Master');  var valueMaster = master.getRange(2, 1, master.getLastRow(), master.getLastColumn()).getValues();  var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');  var sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet2');  var dataSheet1 = valueMaster.filter( function(item){    return item[2] === 'Sheet1';  });  var dataSheet2 = valueMaster.filter( function(item){    return item[2] === 'Sheet2';  });  sheet1.getRange(2, 1, dataSheet1.length, dataSheet1[0].length).setValues(dataSheet1);  sheet2.getRange(2, 1, dataSheet2.length, dataSheet2[0].length).setValues(dataSheet2);}

But, my code is still no simple. The problem is when I have 100 sheets, I have to write over and over:

this


Viewing all articles
Browse latest Browse all 9782

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>