Google Sheet 复制母版的脚本 Sheet 并重命名
Google Sheet Script to Duplicate Master Sheet & Rename
我正在尝试自动复制主控 sheet 并同时将当前主控 sheet 重命名为当前日期。
进程:
- 假设大师 Sheet 是根据昨天的日期“2022 年 4 月 18 日”命名的
- 复制 Master Sheet 并在复制后将其重命名为当前日期“04/19/2022”
- 重命名重复的 sheet 以删除“Copy of”
非常感谢帮助
每天从昨天的大师那里复制一份
function dupsht() {
const ss = SpreadsheetApp.getActive();
const dt = new Date();//today
const ydt = new Date(dt.getFullYear(),dt.getMonth(),dt.getDate() - 1);//yesterday
const sh = ss.getSheetByName(Utilities.formatDate(ydt,Session.getScriptTimeZone(),"MM/dd/yyyy"));
ss.insertSheet(Utilities.formatDate(dt,Session.getScriptTimeZone(),"MM/dd/yyyy"),{template:sh})
}
尝试
function duplicateTemplate() {
var today = new Date();
var yesterday = new Date();
yesterday.setDate(today.getDate() - 1)
var d0 = Utilities.formatDate(yesterday, Session.getScriptTimeZone(), "MM/dd/yyyy");
var d1 = Utilities.formatDate(today, Session.getScriptTimeZone(), "MM/dd/yyyy");
SpreadsheetApp.getActiveSpreadsheet().getSheetByName(d0).activate()
SpreadsheetApp.getActiveSpreadsheet().duplicateActiveSheet().setName(d1)
};
注意脚本编辑器中的时区。如果需要更改,请单击脚本编辑器左侧的齿轮,选中第三个框,返回脚本编辑器并 select appsscript.json。根据需要进行更改。
编辑:如果“昨天的sheet”不存在,此脚本将尝试查找上周的最新
function duplicateTemplate() {
const ss = SpreadsheetApp.getActiveSpreadsheet()
const today = new Date();
const d1 = Utilities.formatDate(today, Session.getScriptTimeZone(), "MM/dd/yyyy");
let previousDay = new Date();
let n = 1
while (n <= 7) {
previousDay.setDate(today.getDate() - n++)
let d0 = Utilities.formatDate(previousDay, Session.getScriptTimeZone(), "MM/dd/yyyy");
var sh = ss.getSheetByName(d0)
if (sh != null) {
sh.activate()
ss.duplicateActiveSheet().setName(d1)
break
}
}
};
我正在尝试自动复制主控 sheet 并同时将当前主控 sheet 重命名为当前日期。
进程:
- 假设大师 Sheet 是根据昨天的日期“2022 年 4 月 18 日”命名的
- 复制 Master Sheet 并在复制后将其重命名为当前日期“04/19/2022”
- 重命名重复的 sheet 以删除“Copy of”
非常感谢帮助
每天从昨天的大师那里复制一份
function dupsht() {
const ss = SpreadsheetApp.getActive();
const dt = new Date();//today
const ydt = new Date(dt.getFullYear(),dt.getMonth(),dt.getDate() - 1);//yesterday
const sh = ss.getSheetByName(Utilities.formatDate(ydt,Session.getScriptTimeZone(),"MM/dd/yyyy"));
ss.insertSheet(Utilities.formatDate(dt,Session.getScriptTimeZone(),"MM/dd/yyyy"),{template:sh})
}
尝试
function duplicateTemplate() {
var today = new Date();
var yesterday = new Date();
yesterday.setDate(today.getDate() - 1)
var d0 = Utilities.formatDate(yesterday, Session.getScriptTimeZone(), "MM/dd/yyyy");
var d1 = Utilities.formatDate(today, Session.getScriptTimeZone(), "MM/dd/yyyy");
SpreadsheetApp.getActiveSpreadsheet().getSheetByName(d0).activate()
SpreadsheetApp.getActiveSpreadsheet().duplicateActiveSheet().setName(d1)
};
注意脚本编辑器中的时区。如果需要更改,请单击脚本编辑器左侧的齿轮,选中第三个框,返回脚本编辑器并 select appsscript.json。根据需要进行更改。
编辑:如果“昨天的sheet”不存在,此脚本将尝试查找上周的最新
function duplicateTemplate() {
const ss = SpreadsheetApp.getActiveSpreadsheet()
const today = new Date();
const d1 = Utilities.formatDate(today, Session.getScriptTimeZone(), "MM/dd/yyyy");
let previousDay = new Date();
let n = 1
while (n <= 7) {
previousDay.setDate(today.getDate() - n++)
let d0 = Utilities.formatDate(previousDay, Session.getScriptTimeZone(), "MM/dd/yyyy");
var sh = ss.getSheetByName(d0)
if (sh != null) {
sh.activate()
ss.duplicateActiveSheet().setName(d1)
break
}
}
};