Google Sheets脚本在月初复制一张表



我正在谷歌表单上创建预算。我有两张一月份的表格(分别是一月份的摘要和一月份的交易(。我正在尝试创建一个脚本,该脚本将在每个新月份开始时自动复制这些工作表,并在当月更改工作表名称。我不知道该怎么做,因为我刚开始编码——有人有想法吗?

function duplicateAndRenameSheet() {
const prefix="Copy of ";//add in front of new name
const postfix= ' ' + Utilities.formatDate(new Date(),Session.getScriptTimeZone,"E yyMMdd:HHmmss");//add to back of new name
const ss=SpreadsheetApp.getActive();
const sh=ss.getActiveSheet();
let name=sh.getName();//active sheets name
let nsh=ss.insertSheet({template:sh});//inserts a new sheet that's a copy of the active sheet
nsh.setName(prefix + name + postfix);//renames the new sheet
}

电子表格方法

薄片方法

只需在Apps Script中使用时间驱动的可安装触发器即可实现您想要的功能

至于复印这两张纸,以下方法可能会对你有所帮助:

  • copyTo(spreadsheet)-这将允许您将工作表复制到spreadhseet

在您的情况下,由于您想要复制两张图纸,因此必须对每张图纸使用上述方法。

  • setName(name)-这将允许您更改图纸的名称

由于您想要获取当前月份,因此解决方案是获取当前日期,然后使用getMonth

至于触发器,您可以创建这样一个:

function createTrigger() {
ScriptApp.newTrigger('copySheets')
.timeBased()
.onMonthDay(1)
.atHour(9)
.create();
}
}

上面的函数在copySheets函数上创建了一个基于时间的触发器(假设这是将复制工作表的函数(,它将在每月1日运行。

参考

  • 应用程序脚本表类-copyTo(电子表格(;

  • 应用程序脚本表类-setName(name(;

  • 应用程序脚本可安装触发器。

相关内容

最新更新