Установите флажок с помощью onEdit, так как новая строка добавлена ​​в электронную таблицу - Apps Script - PullRequest
1 голос
/ 15 января 2020

У меня есть скрипт ниже, который добавляет временную метку при добавлении новой строки данных.

function onEdit(e) {
var s = SpreadsheetApp.getActiveSheet();
if(s.getName() !== 'Sheet7' || e.range.columnStart != 1 || e.range.rowStart < 1) return;
e.range.offset(0, 1).setValue(e.value ? new Date() : "");
}

Я пробовал ниже добавить флажок, не работает.

function AddCheckBox() {
var cell = SpreadsheetApp.getActive().getDataRange('A1:B');
var criteria = SpreadsheetApp.DataValidationCriteria.CHECKBOX;
var rule = SpreadsheetApp.newDataValidation()
.requireCheckbox()
.build();
cell.setDataValidation(rule);
}

Мне бы также хотелось добавить флажок в столбец рядом с местом, где отображается метка времени.

Заранее спасибо

1 Ответ

0 голосов
/ 15 января 2020

Я только разобрался, если кому-то интересно

function onEdit(e) {
var s = SpreadsheetApp.getActiveSheet();
if(s.getName() !== 'TEST' || e.range.columnStart != 1 || e.range.rowStart < 1) 
return;
e.range.offset(0, 1).setValue(e.value ? new Date() : "");
var spreadsheet = SpreadsheetApp.getActive();
var cell = SpreadsheetApp.getActive().getRange('C1');
var criteria = SpreadsheetApp.DataValidationCriteria.CHECKBOX;
var rule = SpreadsheetApp.newDataValidation()
.requireCheckbox()
.build();
 cell.setDataValidation(rule);
 var spreadsheet = SpreadsheetApp.getActive();
 spreadsheet.getRange('C1').activate();   
 spreadsheet.getCurrentCell()
 .getNextDataCell(SpreadsheetApp.Direction.DOWN).activate();
  spreadsheet.getActiveRange()
 .autoFillToNeighbor(SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES);
  spreadsheet.getRange('A1').activate();
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...