2016-11-02 3 views
0

Короче говоря: Мне нужно изменить скрипт справки, чтобы переопределить или удалить цвета условного форматирования, применяемые в Google Таблицах, в зависимости от того, имеет ли ячейка заметку в Это.Как переопределить или удалить условное форматирование в Google Таблицах с помощью скрипта Google Apps

Полное объяснение: У меня есть this scheduling template, который мы используем для отслеживания работы по созданию контента. Редактору нравится иметь условное форматирование, чтобы показать, где находятся самые быстрые даты на листе. Мы также хотели бы пометить ячейки, добавив к ним заметку (чтобы мы могли видеть запланированную дату завершения в ячейке и фактическую дату завершения в примечании), которая затем села из этой ячейки. Седая из клеток с примечаниями работает с этим скриптом мощеным вместе с форумов:

function onOpen() { var sheet = SpreadsheetApp.getActiveSheet(), 
    data = sheet.getDataRange(), 
    notes = data.getNotes(), 
    bkgs = data.getBackgrounds(); for (var i = 0, len = notes.length; i < len; i++) { 
for (var j = 0, jlen = notes[0].length; j < jlen; j++) 
{ 
    if (notes[i][j]) 
    bkgs[i][j] = 'gray'; 
} } data.setBackgrounds(bkgs); } 

Однако, это не будет серым цвета ячейки, условное форматирование существует, так что я искал больше коды, чтобы решить эту проблему. Я попробовал добавить sheet.clearFormats(); внутри если заявление, как это:

{ 
    if (notes[i][j]) 
    bkgs[i][j] = 'gray'; 
    sheet.clearFormats(); 
} } data.setBackgrounds(bkgs); 

... который, казалось, работать на первом, но затем полностью парализован лист. Затем он затормозил следующие пару раз, когда я попытался открыть и закрыть его. Любые идеи о том, как переопределить или удалить условное форматирование в этом параметре без сбоев на вкладке?

ответ

0

setBackground - это объект диапазона. Он не будет работать с массивом, это работает:

function changeConditionalFormat() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet() 
    var s = ss.getActiveSheet() 
    var range= s.getRange(2,8,5,1) 
    range.clearFormat() 
    range.setBackground('grey'); 
} 
+0

А, хороший момент! Есть ли способ заставить это работать только на ячейках, где добавлена ​​заметка? Я возился с ним, но продолжаю получать ошибки в своем коде. (Извините, я в этом начинаю.) – Marie