В приведенном ниже коде Google Sheets я копирую данные календаря за два месяца из отдельных ежемесячных листов и вставляю их в лист «TwoMonth» для отображения.Одна функция увеличивает отображаемые месяцы на один месяц, а другая - наоборот, резервное копирование на один месяц.Идея состоит в том, чтобы вставить значения и форматы в два разных утверждения.Функция Forward1Mo работает как положено.Функция Reverse1Mo вставляет значения, но не может вставить формат.Код практически идентичен между двумя функциями, но производительность - нет.Что я делаю неправильно?
function Forward1Mo() {
var spreadsheet = SpreadsheetApp.getActive();
var showMo1 = spreadsheet.getRange('C19').getValue()+1;
var showMo2 = showMo1+1;
spreadsheet.getSheetByName(showMo1).getRange('B2:H15').copyTo(spreadsheet.getSheetByName('TwoMonth').getRange('B2:H15'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
spreadsheet.getSheetByName(showMo1).getRange('B2:H15').copyTo(spreadsheet.getSheetByName('TwoMonth').getRange('B2:H15'), SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false);
spreadsheet.getSheetByName(showMo2).getRange('B2:H15').copyTo(spreadsheet.getSheetByName('TwoMonth').getRange('J2:P15'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
spreadsheet.getSheetByName(showMo2).getRange('B2:H15').copyTo(spreadsheet.getSheetByName('TwoMonth').getRange('J2:P15'), SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false);
spreadsheet.getActiveSheet().getRange('C19').setValue(showMo1);
};
function Reverse1Mo() {
var spreadsheet = SpreadsheetApp.getActive();
var showMo1 = spreadsheet.getRange('C19').getValue()-1;
var showMo2 = showMo1+1;
spreadsheet.getSheetByName(showMo1).getRange('B2:H15').copyTo(spreadsheet.getSheetByName('TwoMonth').getRange('B2:H15'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
spreadsheet.getSheetByName(showMo1).getRange('B2:H15').copyTo(spreadsheet.getSheetByName('TwoMonth').getRange('B2:H15'), SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false);
spreadsheet.getSheetByName(showMo2).getRange('B2:H15').copyTo(spreadsheet.getSheetByName('TwoMonth').getRange('J2:P15'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
spreadsheet.getSheetByName(showMo2).getRange('B2:H15').copyTo(spreadsheet.getSheetByName('TwoMonth').getRange('J2:P15'), SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false);
spreadsheet.getActiveSheet().getRange('C19').setValue(showMo1);
};