Скрипт Google Sheets, поддерживающий условное форматирование после вставки строки - PullRequest
1 голос
/ 06 марта 2020

У меня есть электронная таблица, где у меня есть список элементов из строки 6 вниз. пятая строка зарезервирована для ввода сведений о новом элементе. Затем я использую пользовательскую кнопку для добавления элемента в список (вставьте новую строку над строкой 6, скопируйте строку 5 в строку 6, очистите строку 5). Моя проблема в том, что у меня есть условное форматирование в столбце A: C, и после запуска addItem новая строка не включается в правило условного форматирования, она меняется с 'A1: C1211' на 'A1: C4, A6: C1211 '(разрыв увеличивается по мере добавления предметов). Как я могу сохранить правило форматирования, примененное к новой строке, или впоследствии обновить правило, добавив в него новую строку?

При вставке строки в лист вручную форматирование сохраняется, поэтому не уверен, почему оно не поддерживается сценарием.

function addItem() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();

  var poshSheet = spreadsheet.getSheetByName("Posh");
  var data = spreadsheet.getSheetByName("Background Data");

  var cell;
  var inputRow = poshSheet.getRange('A5:R5');
  var insertRow = poshSheet.getRange('A6:R6');

  if(inputRow != null){  
    //get and updateItemNo
    var itemNo = data.getRange('D12').getCell(1, 1).getValue();
    inputRow.getCell(1,1).setValue(itemNo);
    data.getRange('D12').getCell(1, 1).setValue(itemNo+1);

    //insert blank row at top 
    poshSheet.insertRowBefore(6);
    //copy input 
    inputRow.copyTo(insertRow);

    //clear input row
    inputRow.clear()
  }  
}

1 Ответ

2 голосов
/ 06 марта 2020

Я думаю, что причина вашей проблемы inputRow.clear(). В этом случае формат также очищается. По этому диапазон делится. Так как насчет изменения следующим образом?

С:

inputRow.clear();

Кому:

inputRow.clear({contentsOnly: true});

или

inputRow.clearContent();

Примечание:

  • В этом случае значение ячейки очищается без разделения диапазона.

Ссылки:

Если я неправильно понял ваш вопрос, и это не было результатом Вы хотите, я прошу прощения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...