Я пытаюсь подсчитать любые изменения, сделанные в диапазоне A:I
, и установить значение на листе, однако мой скрипт в настоящее время работает только для редактирования столбцов, а не строк.
Вот сценарий, который я использую:
function onEdit(e) {
var ss =SpreadsheetApp.getActiveSpreadsheet()
var s=ss.getActiveSheet()
var editColumn=e.range.getColumn()
var editRow = e.range.getRow()
if(editColumn == 4 && editRow >=2) {
var sCounter = s.getRange(editRow,editColumn+1,1,1);
var counter = sCounter.getValue();
if(counter === 0) {
counter = 1;
} else {
counter ++;
}
sCounter.setValue(counter);
}
}
1 ответ
Попробуй это:
function onEdit(e) {
var sh=e.range.getSheet();
//e.source.toast('Flag1');
if(sh.getName()=="Sheet1" && e.range.columnStart<10 && e.range.rowStart>1) {
//e.source.toast('Flag2');
if(!PropertiesService.getDocumentProperties().getProperty('EditCounter')) {
PropertiesService.getDocumentProperties().setProperty('EditCounter', 1);
//e.source.toast('Flag3');
}else{
PropertiesService.getDocumentProperties().setProperty('EditCounter', Number(PropertiesService.getDocumentProperties().getProperty('EditCounter'))+1);
e.source.toast(PropertiesService.getDocumentProperties().getProperty('EditCounter'));
}
}
}
Вы, вероятно, захотите удалить последний тост, который предоставляет вам счетчик редактирования.
function resetEditCounter() {
var ss=SpreadsheetApp.getActive();
PropertiesService.getDocumentProperties().setProperty("EditCounter", 0);
ss.toast(PropertiesService.getDocumentProperties().getProperty('EditCounter'));
}
Вы можете связать приведенную ниже функцию с пунктом меню, чтобы получить текущий счет.
function getEditCounter() {
var ss=SpreadsheetApp.getActive();
var html=Utilities.formatString('Edit Counter: %s',PropertiesService.getDocumentProperties().getProperty('EditCounter'));
var userInterface=HtmlService.createHtmlOutput(html);
SpreadsheetApp.getUi().showModelessDialog(userInterface, 'Current Edit Counter');
}
Похожие вопросы
Новые вопросы
google-apps-script
Используйте для вопросов о Google Apps Script, серверной платформе Google для облачных сценариев на основе Javascript для автоматизации задач в продуктах Google и сторонних службах. Используйте в дополнение к релевантным тегам продукта (например, [google-sheets], [google-docs]) или API (например, [google-drive-api]), где это применимо.