我正在嘗試自動復制主表并同時將當前主表重命名為當天。
程序:
- 假設主表以昨天的日期“2022 年 4 月 18 日”命名
- 復制主表并在復制后將其重命名為當前日期“04/19/2022”
- 重命名重復的作業表以洗掉“副本”
非常感謝幫助
uj5u.com熱心網友回復:
嘗試
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)
};
注意腳本編輯器中的時區。要根據需要進行更改,請單擊腳本編輯器左側的齒輪,選中第三個框,回傳腳本編輯器并選擇 appsscript.json。根據需要進行更改。
編輯:如果“昨天的作業表”不存在,此腳本將嘗試查找上周的最新作業表
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
}
}
};
uj5u.com熱心網友回復:
每天從昨天的主人那里復制一份
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})
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/459999.html
標籤:谷歌应用脚本
下一篇:僅對給定字串的數字求和
