Google листы Вставить формат
В приведенном ниже коде 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);
};
1 ответ
Сегодня приведенный выше код прекрасно работает в Google Sheets. Я даже вчера сохранил, закрыл, открыл и перепробовал Google Sheet безрезультатно. Сегодня я открыл и проверил, чтобы найти, что все работает как ожидалось.
Надеюсь, что приведенный выше код кому-то пригодится. Главной особенностью этого кода является представление двухмесячного представления книги с возможностью прокрутки, составленной из листов за один месяц. Идея заключалась в том, чтобы представлять значения и форматы только для веб-презентации. Предусмотрены кнопки, которые вызывают любую из двух функций, показанных выше.