Установите все флажки в ложь в общей книге - PullRequest
2 голосов
/ 02 апреля 2020

Я использовал следующий скрипт для снятия флажков в активной электронной таблице.

function ResetCheckboxesOnSheet() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();
  var rg=sh.getDataRange();
  var vA=rg.getDataValidations();
  var cbA=[];
  for(var i=0;i<vA.length;i++) {
    for(var j=0;j<vA[i].length;j++) {
      var rule=vA[i][j];
      if(rule!=null) {
        var criteria = rule.getCriteriaType();
        if(criteria == SpreadsheetApp.DataValidationCriteria.CHECKBOX) {
          sh.getRange(i+1,j+1).setValue(false)

        }
      }
    }
  }
}

Но я пытаюсь выяснить, могу ли я снять флажки с рабочей книги. У меня 38 расписаний, 38 разных вкладок. У каждого сотрудника есть 5 или 6 разных вопросов, чтобы установить флажок «верно» или «неверно». Я хотел бы иметь возможность снять все флажки на всех 38 вкладках, запустив скрипт один раз.

Ответы [ 2 ]

1 голос
/ 07 апреля 2020

Если вы хотите снять все флажки на каждом листе внутри электронной таблицы, вы можете сделать это, используя метод uncheck () . Это пример кода того, как вы это сделаете:

function uncheckAllBoxes() {
  // Get the Spradsheet linked to this Apps Script project
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  // Get all sheets in the Spreadsheet
  var sheets = ss.getSheets();
  // Uncheck all checkboxes in every sheet
  sheets.forEach((sheet) => sheet.getDataRange().uncheck());
}

Примечание:

0 голосов
/ 03 апреля 2020

Вам просто нужно пройти oop по всей книге. Это должно сделать это для вас:

function KillALlChecks(){
var ss = SpreadsheetApp.getActive();
var allSheets = ss.getSheets();

allSheets.forEach(function(sheet){
    ResetCheckboxesOnSheet(sheet);
    }
}



function ResetCheckboxesOnSheet(sh) {

  var rg=sh.getDataRange();
  var vA=rg.getDataValidations();
  var cbA=[];
  for(var i=0;i<vA.length;i++) {
    for(var j=0;j<vA[i].length;j++) {
      var rule=vA[i][j];
      if(rule!=null) {
        var criteria = rule.getCriteriaType();
        if(criteria == SpreadsheetApp.DataValidationCriteria.CHECKBOX) {
          sh.getRange(i+1,j+1).setValue(false)

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