Макрос Google Sheets для изменения цвета фона ячейки в зависимости от вводимого текста - PullRequest
1 голос
/ 10 апреля 2019

Я хочу сделать макрос в Google листе для следующего случая

В столбце рабочего листа, скажем, столбец J , допустимые текстовые вводы: «A», «B» и «C».

Как только я добавлю A, B или C (в столбец J), цвет фона ячейки должен измениться на "Зеленый", "Желтый" и "Красный" соответственно.

Как я могу это сделать?

Я не знаю много о макросах, я только что получил задание сделать это. Могу ли я получить помощь?

1 Ответ

1 голос
/ 10 апреля 2019
  • Вы хотите изменить цвет фона отредактированной ячейки, только когда в столбец "J" введены "A", "B" и "C".
  • "Макрос листа Google" в заголовке и теге - Google Apps Script.

Если мое понимание верно, как насчет этих 2 примеров сценариев? Пожалуйста, подумайте об этом как об одном из нескольких ответов.

Пример сценария 1:

В этом примере скрипта используется событие «OnEdit» простых триггеров.

Расход:

  1. Проверьте диапазон редактируемой ячейки. Если диапазон - это столбец «J», скрипт запускается.
  2. Проверьте введенное значение. Если введено значение «A», «B» и «C», цвет фона изменяется.
    • Если введенное значение НЕ равно «A», «B» и «C», значение удаляется.

Сценарий:

Скопируйте и вставьте следующий скрипт в редактор скриптов и сохраните его. Затем укажите значение в столбце «J».

function onEdit(e) {
  if (e.range.getColumn() == 10) {
    var colors = {A: "green", B: "yellow", C: "red"};
    if (Object.keys(colors).indexOf(e.value) > -1) {
      e.range.setBackground(colors[e.value]);
    } else {
      e.range.setValue("");
    }
  }
}

Примечание:

  • В этом примере сценария сценарий выполняется для всех листов в электронной таблице.
    • Если вы хотите запустить скрипт для конкретных листов, скажите, пожалуйста.
  • В этом примере сценария предполагается, что в одну ячейку помещается одно значение.
    • Если вы хотите поместить несколько значений в несколько строк в столбце «J», сообщите мне.

Пример сценария 2:

В этом примере сценария установите для параметра «Проверка данных» и «Условное правило формата» значение «J».

* * Поток тысяча сорок-девять:
  1. Установить проверку данных
    • Таким образом, только столбцы «J» могут содержать только значения «A», «B» и «C».
  2. Установить правило условного формата
    • При этом, когда значения «A», «B» и «C» помещаются в ячейку столбца «J», цвет фона изменяется.

Сценарий:

Скопируйте и вставьте следующий скрипт в редактор скриптов и сохраните его. Затем запустите myFunction() в редакторе сценариев. В этом сценарии условие работает, запустив сценарий только один раз.

function myFunction() {
  var rangeA1Notation = "J:J"; // Column "J"
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange(rangeA1Notation);

  // Set Data Validation
  var rule = SpreadsheetApp.newDataValidation().withCriteria(SpreadsheetApp.DataValidationCriteria.VALUE_IN_LIST, [["A", "B", "C"], false]).setAllowInvalid(false).build();
  range.setDataValidation(rule);

  // Set Conditional Format Rule
  var rules = sheet.getConditionalFormatRules();
  rules.push(SpreadsheetApp.newConditionalFormatRule().whenTextEqualTo("A").setBackground("green").setRanges([range]).build());
  rules.push(SpreadsheetApp.newConditionalFormatRule().whenTextEqualTo("B").setBackground("yellow").setRanges([range]).build());
  rules.push(SpreadsheetApp.newConditionalFormatRule().whenTextEqualTo("C").setBackground("red").setRanges([range]).build());
  sheet.setConditionalFormatRules(rules);
}

Ссылки

Если эти методы были не тем, что вы хотите, я прошу прощения.

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