我在Google Sheet中有以下功能:
function DUPLICATE() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.duplicateActiveSheet();
var rangeList = spreadsheet.getRangeList(['A15:G38', 'F8:G11', 'B9:D13']).clearContent();
};
function sheetName() {
return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
};
当我单击"复制"按钮时,它会触发第一个函数"复制",但对于第二个函数,我需要返回谷歌脚本和保存,以便更改我分配给=sheetName()
的单元格。
有什么方法可以让我自动化吗?
说明:
你不需要两个函数来实现你的目标,而且你当前的流程涉及一个自定义函数,需要手动干预才能更新它。
-
在以下脚本中,您需要更改两个变量:
const src_name = 'Sheet A'; const trg_name = 'Sheet B';
然后选择您选择的工作表名称。脚本将复制Sheet A
并将其重命名为Sheet B
。请根据您的具体情况修改这两个名称。执行DUPLICATE()
后,将创建具有所选名称的副本,目标文件中的范围列表将被清除,您将在单元格B3
中看到目标工作表的名称。
解决方案:
function DUPLICATE() {
const src_name = 'Sheet A';
const trg_name = 'Sheet B';
const sprd = SpreadsheetApp.getActive();
const sh_src = sprd.getSheetByName('Sheet A');
const sh_trg =sh_src.copyTo(sprd);
sh_trg.setName(trg_name);
sh_trg.getRangeList(['A15:G38', 'F8:G11', 'B9:D13']).clearContent();
sh_trg.getRange('B3').setValue(trg_name);
sh_trg.activate();
}