Google Sheets проверяет, имеет ли ячейка границу, используя скрипт - PullRequest
0 голосов
/ 17 января 2020

Я пытаюсь добавить пользовательское форматирование в отчет, чтобы любой бренд, который его использует, мог изменить свои фирменные цвета.

В настоящее время у меня меняется цвет ячейки, но я хочу, чтобы менялись только эти ячейки. цвет, если у них есть границы. Таким образом, он использует границу в качестве проверки AND.

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

function colorReplace() {
  var spread = SpreadsheetApp.openByUrl('SPREADSHEET_URL');
  var doc = spread.getSheetByName("DASHBOARD_NAME");
  var settings = spread.getSheetByName("Settings");

  // get all the existing active sheet background colours
  var cells = doc.getRange(1, 1, doc.getLastRow(), doc.getLastColumn()).getBackgrounds();
  var rows = cells.length;
  var cols = cells[0].length;

  var primary = doc.getRange('E2').getBackground(); // Get background of ref cell
  var primaryReplace = settings.getRange('B2').getValue(); // Get background from cell in settings
  var border = settings.getRange('B5').getValue(); // Get border colour from cell in settings

  //Logger.log(primary);
  //Logger.log(primaryReplace);

Boolean for those cells which have a border

  // iterate accross
  for (var i = 0; i < rows; i++){
    for (var j = 0; j < cols; j++){
      if (cells[i][j] == primary && cells[i][j] == check ){ 

// if cells equal cell colour and they have a border. Possibly could just change this to if cells have a border?

            cells[i][j] = primaryReplace; // Cell Colour Change
          }
        }
      }
      // update backgound colours
      doc.getRange(1, 1, doc.getLastRow(), doc.getLastColumn()).setBackgrounds(cells);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...