Электронные таблицы Google — изменение цвета фона в цикле while

#google-sheets

Вопрос:

Я пытаюсь менять цвет фона одной из моих ячеек каждые 2 секунды, пока статус «6 — aanvraag».

Однако, когда я выполняю приведенный ниже сценарий, он будет белым только тогда, когда сценарий будет выполнен, и он никогда не станет красным.

Кто-нибудь может мне в этом помочь.

   var eenheidColom = sheet.getRange('A7');
  var status = spreadsheet.getRange('C5').getValue();

  while (status == '6 aanvraag') {
    eenheidColom.setBackgroundRGB(255,0,0)
    Utilities.sleep(2000);
    eenheidColom.setBackgroundRGB(255,255,255)
    status = spreadsheet.getRange('C5').getValue();
  }
}
 

Комментарии:

1. Это может помочь вам в приложении SpreadsheetApp.flush()

Ответ №1:

Ответ:

Вам нужно принудительно внести изменения в свой лист между двумя вызовами, чтобы установить цвет фона.

Дополнительная Информация:

Часто операции с листами выполняются пакетами, поэтому визуальные изменения могут быть незаметны. Однако вы можете принудительно выполнить все ожидающие действия, позвонив по SpreadsheetApp.flush() адресу .

Изменения Кода:

Я внес пару небольших изменений в код, чтобы сделать ваш цикл более эффективным, в дополнение к flush() вызову:

 const eenheidColom = sheet.getRange('A7')
const cell = spreadsheet.getRange('C5')
let status = cell.getValue()

while (status === '6 aanvraag') {
  eenheidColom.setBackgroundRGB(255, 0, 0)
  SpreadsheetApp.flush()
  Utilities.sleep(2000)

  eenheidColom.setBackgroundRGB(255, 255, 255)
  SpreadsheetApp.flush()
  Utilities.sleep(2000)

  status = cell.getValue()
}
 

Наглядный Пример:

введите описание изображения здесь