Скрипт Google - Скрыть / Показать лист Google на основе флажка на другом листе - PullRequest
1 голос
/ 26 июня 2019

Я почти уверен, что я делаю что-то не так в коде, почему он не работает так, как я хочу. Во-первых, вот код:

function onEdit(a) {

var sheet = a.source.getActiveSheet();
var aa = SpreadsheetApp.getActiveSpreadsheet();
var COMP = aa.getSheetByName("COMP");
var COMPcell = sheet.getRange('B6').getValue();
if(COMPcell = 'TRUE'){COMP.showSheet();}else{COMP.hideSheet();}
}

Здесь у меня естьфлажок в ячейке B6 «активного листа» (с именем Ежемесячная сводка). Когда отмечен (и, следовательно, имеет значение ИСТИНА), я хочу, чтобы лист с именем «COMP» появился. В противном случае он должен быть скрыт. Яне очень хорошо разбираюсь в кодировании, и я исследовал приведенную выше формулу и изменил ее в соответствии со своими требованиями, но я не могу заставить ее работать.

Любая идея по этому вопросу будет очень цениться. Спасибо!

1 Ответ

0 голосов
/ 27 июня 2019
  • Вы хотите показывать лист COMP только тогда, когда установлен флажок "B6".
  • Вы хотите скрыть лист COMP, если флажок "B6" не установлен.

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

Модифицированный скрипт 1:

Если ваш сценарий изменен, в вашем сценарии COMPcell = 'TRUE' оператора if не сравнивается со значением. В этом случае, пожалуйста, измените на COMPcell === true. Модифицированный скрипт отразил это следующим образом.

function onEdit(a) {
  var sheet = a.source.getActiveSheet();
  var aa = SpreadsheetApp.getActiveSpreadsheet();
  var COMP = aa.getSheetByName("COMP");
  var COMPcell = sheet.getRange('B6').getValue();
  if (COMPcell === true) { // Modified
    COMP.showSheet();
  } else {
    COMP.hideSheet();
  }
}

Модифицированный скрипт 2:

Когда используется объект события и isChecked(), ваш сценарий также можно изменить следующим образом. В этом скрипте, только когда флажок «B6» отредактирован, скрипт работает.

function onEdit(a) {
  var range = a.range;
  if (range.getA1Notation() == "B6") {
    var COMP = a.source.getSheetByName("COMP");
    if (range.isChecked()) {
      COMP.showSheet();
    } else {
      COMP.hideSheet();
    }
  }
}

Ссылки:

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