Как заставить условно видимый флажок в Google Sheets работать правильно? - PullRequest
0 голосов
/ 23 апреля 2020

Я хочу, чтобы этот флажок был виден только в том случае, если в другой ячейке есть что-то.

=IF(ISBLANK(B4),"",FALSE)

Это прекрасно работает как условно видимый флажок, но проблема в том, что нажатие на флажок не меняется состояние флажка.

Есть ли способ сделать этот флажок условно видимым и функционально работающим (позволяющим пользователю щелкнуть его и изменить состояние)?

1 Ответ

3 голосов
/ 24 апреля 2020

Я считаю, что ваша цель заключается в следующем.

  • Вы хотите поставить флажок в ячейку, когда ячейка "B4" не пуста.
  • Вы хотите снять флажок из ячейки, когда ячейка "B4" пуста.
  • Вы хотите установить и снять флажок для этого флажка.
  • Вы хотите добиться этого с помощью Google Apps Script из своего тега.

Для этого, как насчет этого ответа?

Проблема и обходное решение:

Когда используется =IF(ISBLANK(B4),"",FALSE), флажок не может быть установлен. Это уже упоминалось в вашем вопросе. Чтобы избежать этого, в качестве обходного пути я хотел бы предложить использовать Google Apps Script и триггер события OnEdit. Я думал, что этим можно достичь вашей цели.

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

Пожалуйста, скопируйте и вставьте следующий пример сценария в редактор сценариев электронной таблицы. И, пожалуйста, установите переменные checkboxCell и sheetName. Затем, пожалуйста, отредактируйте ячейку B4. При этом сценарий автоматически запускается триггером события OnEdit.

function onEdit(e) {
  const checkboxCell = "C4"; // Please set the cell for putting the checkbox.
  const sheetName = "Sheet1"; // Please set the sheet name you want to put the checkbox.

  const range = e.range;
  const sheet = range.getSheet();
  if (sheet.getSheetName() == sheetName && range.getA1Notation() == "B4") {
    const value = range.getValue();
    sheet.getRange(checkboxCell)[value === "" ? "removeCheckboxes" : "insertCheckboxes"]();
  }
}

Примечание:

  • В этом примере сценария, когда сценарий выполняется, когда ячейка редактирования B4 на листе sheetName, когда ячейка B4 пуста, флажок снят с ячейки checkboxCell. Если ячейка B4 НЕ пуста, флажок устанавливается на ячейку checkboxCell.
  • . Это простой пример сценария, подтверждающий, может ли ваша цель в вашем вопросе (Is there a way to have this checkbox be conditionally visible and also functionally work (allowing the user to click it & change the state)?) быть достигнута Google Apps Script. Поэтому, пожалуйста, измените это для вашей реальной ситуации.

Ссылки:

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