Простите, если моя формулировка выключена, я новичок в Scripts, но кто-то сделал мне скрипт для запуска onEdit / Triggers для листа, который у меня есть. У меня также есть скрипт onEdit для даты / времени. Вчера у меня все они работали ненадолго, но затем новые сценарии запуска onEdit перестали работать; заявив, что у меня было слишком много сценариев. Диапазоны, которые импортируются по триггерам, имеют формулы и условное форматирование. Ячейка, которая инициирует события для кодов Стадии 1, Стадии 2, Стадии 3 и PIT, является ячейкой проверки данных. Ссылка на лист и коды находятся внизу этого поста.
Вот что мне интересно:
- Как объединить четыре (4) сценария в один (1) сценарий и
- Если возможно добавить код в скрипт, чтобы удалить ячейки диапазона, которые он импортирует, прежде чем он поместит новые сработавшие ячейки. Поскольку каждый импортируемый диапазон имеет условное форматирование, которое сохраняется после запуска нового диапазона.
Ссылка на лист: https://docs.google.com/spreadsheets/d/1KYSiVggIm7KIKxpJMnUhldrzsIaETCqyjOWJ1a9k1cI/edit?usp=sharing
Код даты / времени:
function onEdit(e) {
const sheetNameFellowshipTracking = 'Fellowship Tracking';
const dateCol = 43;
// Get edited sheet.
const range = e.range;
const sheet = range.getSheet();
if (sheet.getName() === sheetNameFellowshipTracking)
{
// Get edited row.
const row = range.getRow();
if (row >= 4 && row <= 28)
{
// Get current time.
const time = Utilities.formatDate(new Date(), "GMT-05:00", "MM/dd, HH:mm");
// Set edited datetime.
const dateModifiedRange = sheet.getRange(row, dateCol);
dateModifiedRange.setValue(time);
}
}
}
Код этапа 1:
function onMyEdit(e) {
var sh=e.range.getSheet();
if(sh.getName()!='Fellowship Tracking')return;
if(e.range.columnStart==7 && e.range.rowStart==31 && e.value=='Stage 1') {
var srcrg=e.source.getSheetByName('ALL Stages+Pit').getRange('B3:G21');
var desrg=sh.getRange('C33');
srcrg.copyTo(desrg);
}
}
function createOnMyEditTrigger() {
var ss=SpreadsheetApp.getActive();
ScriptApp.newTrigger('onMyEdit').forSpreadsheet(ss.getId()).onEdit().create();
}
Код этапа 2:
function onMyEdit(e) {
var sh=e.range.getSheet();
if(sh.getName()!='Fellowship Tracking')return;
if(e.range.columnStart==7 && e.range.rowStart==31 && e.value=='Stage 2') {
var srcrg=e.source.getSheetByName('ALL Stages+Pit').getRange('H3:M21');
var desrg=sh.getRange('C33');
srcrg.copyTo(desrg);
}
}
function createOnMyEditTrigger() {
var ss=SpreadsheetApp.getActive();
ScriptApp.newTrigger('onMyEdit').forSpreadsheet(ss.getId()).onEdit().create();
}
Этап 3 Код:
function onMyEdit(e) {
var sh=e.range.getSheet();
if(sh.getName()!='Fellowship Tracking')return;
if(e.range.columnStart==7 && e.range.rowStart==31 && e.value=='Stage 3') {
var srcrg=e.source.getSheetByName('ALL Stages+Pit').getRange('N3:S21');
var desrg=sh.getRange('C33');
srcrg.copyTo(desrg);
}
}
function createOnMyEditTrigger() {
var ss=SpreadsheetApp.getActive();
ScriptApp.newTrigger('onMyEdit').forSpreadsheet(ss.getId()).onEdit().create();
}
Код PIT:
function onMyEdit(e) {
var sh=e.range.getSheet();
if(sh.getName()!='Fellowship Tracking')return;
if(e.range.columnStart==7 && e.range.rowStart==31 && e.value=='PIT') {
var srcrg=e.source.getSheetByName('PIT Sheet').getRange('B5:F17');
var desrg=sh.getRange('C33');
srcrg.copyTo(desrg);
}
}
function createOnMyEditTrigger() {
var ss=SpreadsheetApp.getActive();
ScriptApp.newTrigger('onMyEdit').forSpreadsheet(ss.getId()).onEdit().create();
}