Я считаю, что ваша цель заключается в следующем.
- Вы хотите поставить флажок в ячейку, когда ячейка "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. Поэтому, пожалуйста, измените это для вашей реальной ситуации.
Ссылки: