Sheet merger
Merges data from all sheets into the active sheet by copying the used range of each sheet and appending it.
(function () {
let sheets = Api.GetSheets();
let mergedSheet = Api.GetActiveSheet();
let currentRow = 0;
for (let i = 0; i < sheets.length; i++) {
if (sheets[i].GetName() != mergedSheet.GetName()) {
let sheet = sheets[i];
let data = sheet.GetUsedRange().GetValue();
let range = sheet.GetUsedRange().Address;
range = range.replace(/\$/g, "");
let parts = range.split(":");
let column1 = parts[0].match(/[A-Z]+/)[0];
let column2 = parts[1].match(/[A-Z]+/)[0];
let row1 = parseInt(parts[0].match(/\d+/)[0]) + currentRow;
let row2 = parseInt(parts[1].match(/\d+/)[0]) + currentRow;
currentRow = currentRow + parseInt(parts[1].match(/\d+/)[0]) + 1;
let newRange = column1 + row1 + ":" + column2 + row2;
console.log(newRange);
mergedSheet.GetRange(newRange).SetValue(data);
}
}
})();
Methods used: GetSheets, GetActiveSheet, GetName, GetUsedRange, GetValue, GetRange, SetValue