Форматы вставки в Google

В приведенном ниже коде Google Таблиц я копирую два месяца календарных данных из отдельных ежемесячных листов и вставляя их в лист «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);
};

javascript,google-apps-script,google-spreadsheet,copy-paste,google-sheets-macros,

0

Ответов: 1


1

Сегодня код, опубликованный выше, отлично работает в Google Таблицах. Я даже спасал, закрыл, вновь открыл и вчера проверил лист Google, но безрезультатно. Сегодня я открыл и протестировал, чтобы найти, что все работает так, как ожидалось.

Надеюсь, что код выше для кого-то полезен. Основная особенность этого кода - представить двухмесячный вид рабочей книги, составленной из одного месяца. Идея заключалась в том, чтобы представить ценности и форматы только для представления в Интернете. Предусмотрены кнопки, которые вызывают одну из двух функций, показанных выше.

JavaScript, Google-приложения-скрипт, Google-таблицу, копировать-вставить, Google-листы-макросы,
Похожие вопросы