У вас может быть скрипт для повторного добавления проверки данных для этих диапазонов, если перезапись не-флажков будет опасной.Опять же, это, естественно, безопаснее и намного быстрее, так как он делает целые столбцы сразу.
function checkboxes() {
var targetSheetName = "Sheet1",
headerRows = 1,
checkboxColumns = [1, 3, 4, 5, 7]; // UPDATE THIS LIST IF RESTRUCTURING SPREADSHEET
var targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(targetSheetName),
maxRows = targetSheet.getMaxRows(),
targetRows = maxRows - headerRows,
enforceCheckbox = SpreadsheetApp.newDataValidation();
enforceCheckbox.requireCheckbox();
enforceCheckbox.setAllowInvalid(false);
enforceCheckbox.build();
for (var c in checkboxColumns) {
var targetRange = targetSheet.getRange(headerRows+1, checkboxColumns[c], targetRows);
targetRange.setDataValidation(enforceCheckbox);
}
}
Если вам не нужно заботиться о содержимом этих столбцов, это принудительно заменит не-флажки флажками.Это намного медленнее, хотя, потому что он идет ячейка за ячейкой, чтобы сохранить флажки и перезаписать все остальное.
function checkboxes() {
var targetSheetName = "Sheet1",
headerRows = 1,
checkboxColumns = [1, 3, 4, 5, 7]; // UPDATE THIS LIST IF RESTRUCTURING SPREADSHEET
var targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(targetSheetName),
maxRows = targetSheet.getMaxRows(),
targetRows = maxRows - headerRows;
for (var c in checkboxColumns) {
for (var r = headerRows + 1; r <= maxRows; r++) {
var targetRange = targetSheet.getRange(r, checkboxColumns[c]);
if (targetRange.isChecked() == null) {
targetRange.insertCheckboxes();
}
}
}
}