跳到主要内容

工作表合并

通过复制每个工作表的已用区域并追加,将所有工作表的数据合并到当前活动工作表。

(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);
}
}
})();

使用方法: GetSheets, GetActiveSheet, GetName, GetUsedRange, GetValue, GetRange, SetValue

结果

SheetMergerSheetMerger