очистка содержимого определенного диапазона ячеек с помощью цветовых кодов - PullRequest
0 голосов
/ 17 июня 2019

Обновлено с новым подходом: очистка содержимого определенного диапазона ячеек с помощью цветовых кодов.Я чувствую, что он почти там, но я что-то упускаю, когда он очищает содержимое всего диапазона, но не только те цветовые коды, которые у меня есть в указанном диапазоне ячеек.

Это то, с чем я пытался работать.

  var sheet = SpreadsheetApp.getActive().getSheetByName('HSRD');
  var range = sheet.getRange("HSRD!B5:B8");
  var bgColors = range.getBackgrounds();
  for (var i=0; i<bgColors.length; i++) {
    for (var j=0; j<bgColors[i].length; j++) {
      if (bgColors[i][j] === '#F7B16B','#B6D7A8','#C9DBF8') {
        range.getCell(i+1,j+1).clearContent();
      }
    }
  }  
}
    ;   

1 Ответ

0 голосов
/ 19 июня 2019

Есть 2 проблемы с вашим кодом для достижения того, что вы хотите:

Если условие неверно, оно всегда будет возвращать true, потому что вы используете «,» для соединения условий, и это вернетпоследний элемент (который является строкой и будет принят как «истина»).Чтобы узнать больше об операторе запятой, прочитайте [1].Вместо этого вы должны присоединиться к своим условиям с помощью оператора «||».Другим способом было бы использование массива (если вам проще), это было бы условием:

['#F7B16B', '#B6D7A8', '#C9DBF8'].includes(bgColors[i][j])

Вы используете функцию clearContent () для очистки содержимого, но вам также необходимо использоватьфункция clearFormat (), если вы хотите очистить формат.[2]

function myFunction() {
    var sheet = SpreadsheetApp.getActive().getSheetByName('HSRD');
    var range = sheet.getRange("HSRD!B5:B8");
    var bgColors = range.getBackgrounds();

    for (var i=0; i<bgColors.length; i++) {
      for (var j=0; j<bgColors[i].length; j++) {
        if (bgColors[i][j] === '#F7B16B' || bgColors[i][j] === '#B6D7A8 || bgColors[i][j] === '#C9DBF8) {
        range.getCell(i+1,j+1).clearContent().clearFormat();
      }
    }
  }
}

Кроме того, убедитесь, что вы используете правильные цветовые коды, вы можете проверить это с помощью Logger.log (bgColors), чтобы увидеть в журнале сценариев приложения (View-> Logs) всецветовые коды, которые вы имеете в этом диапазоне.

[1] https://javascriptweblog.wordpress.com/2011/04/04/the-javascript-comma-operator/

[2] https://developers.google.com/apps-script/reference/spreadsheet/range#clearFormat()

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