Hello Stackoverflowers,
Я хочу дублировать лист с именем «Панель инструментов» 1-го числа каждого месяца с именем листа предыдущего месяца и года (ММММ ГГГГ) и содержимым как stati c values.
Чтобы сделать это, я попытался адаптировать два следующих сценария, но он не выполняет то, что я хочу.
проблемы:
Значения не вставляются как абсолютные значения.
Имя листа - это имя текущий месяц, а не предыдущий месяц.
Я считаю, что для проблемы Num. 1, следующее утверждение содержит ошибку в синтаксисе, но я не могу ее найти:
asn.copyTo(getRange("MMMMM yyyy"),{contentsOnly: true});
Для проблемы num. 2 Я действительно не знаю, как начать.
=> Есть идеи? Любая помощь будет высоко ценится
function duplicatesheet() {
var as = SpreadsheetApp.getActiveSpreadsheet(); // active spreadsheet
var s = as.getSheetByName('Dashboard'); // first sheet object
// var s = as.getActiveSheet(); // first sheet object
var dateCell = "H5"; // cell containing first date
var N = 1; // number of copies to make
var startDate = new Date(s.getRange(dateCell).getValue()); // get the date stored in dateCell
var day = startDate.getDate(); // extract the day
var month = startDate.getMonth(); // extract the month
var year = startDate.getFullYear(); // extract the year
// loop over N times
for (var i = 0; i < N; i++) {
var asn = s.copyTo(as); // make a duplicate of the first sheet
var thisSheetDate = new Date(year, month, day+(i+1)); // store the new date as a variable temporarily
asn.getRange(dateCell).setValue(thisSheetDate); // writes the date in cell "B3"
asn.setName(Utilities.formatDate(thisSheetDate, undefined, "MMMMM yyyy")); // sets the name of the new sheet
asn.copyTo(getRange("MMMMM yyyy"),{contentsOnly: true});
}
}
function moveValuesDown() {
var ss = SpreadsheetApp.getActiveSpreadsheet ();
var source = ss.getRange ("Dashboard!A4:I");
source.copyTo (ss.getRange ("MySheet1!A5"), {contentsOnly: true});
}