2016-05-09 3 views
2

Я хочу установить цвет фона каждой строки в столбце «задача», если строка столбца «Состояние» не пуста. Это довольно легко настроить. Однако установка этих правил через многочисленные столбцы и лист 1 на лист 100 может быть очень утомительной.Установить глобальные правила форматирования программным способом

Учитывая, что все листы имеют одинаковые столбцы «задача» и «статус», должно быть возможно установить условное правило на каждом листе. Как я могу сделать это программно?

ответ

1

Вы можете использовать скрипт для выполнения задачи. Как я знаю, нет никакого способа сделать условное форматирование по сценарию, here's the issue. Но вы можете скопировать форматирование:

  1. сделать одно правило условного форматирования на 'Key листа'
  2. запустить скрипт

Вот код для добавления в редактор сценариев:

function loopSheetsCopyFormatting() { 

    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheets = ss.getSheets(); 

    // define Key Sheet 
    var keySheet = ss.getSheetByName('Sheet1'); // change to your's 
    // define range with formatting 
    var rangeAddress = 'A1:A1000'; // change to your's 

    var sampleRange = keySheet.getRange(rangeAddress); 
    var column = sampleRange.getColumn(); 
    var columnEnd = column + sampleRange.getWidth() - 1; 
    var row = sampleRange.getRow(); 
    var rowEnd = row + sampleRange.getHeight() - 1; 

    for (var sheetNum = 0; sheetNum < sheets.length; sheetNum++) { 

    var copyToSheet = sheets[sheetNum]; 
    // copy formatting 
    sampleRange.copyFormatToRange(
     copyToSheet, 
     column, 
     columnEnd, 
     row, 
     rowEnd);  
    } 

} 

линии смены:

var keySheet = ss.getSheetByName('Sheet1'); // change to your's 

и это одна:

var rangeAddress = 'A1:A1000'; // change to your's 

А затем запустить скрипт один раз, чтобы скопировать farmatting.

Смежные вопросы