Требование:
Улучшите сценарий, чтобы он работал быстрее, чтобы идти в ногу с быстрым временем сканирования.
Решение:
Используйте объекты событий в ваших интересах, вы неДля этого скрипта не нужны причудливые циклы for
и getValues()
, он только замедлит ваш скрипт.Реально все, что вам нужно, это имя листа и строка / столбец редактирования.
function onEdit(event) {
var sh = event.source.getActiveSheet();
if (sh.getName() === 'Dolly Returns') {
var col = event.range.getColumn();
if (col === 2) {
var row = event.range.getRow();
sh.getRange(row, 1).setValue(new Date());
}
}
}
Объяснение:
Этот скрипт все еще проверяет, чтобы убедиться, что правильный лист и столбец находятсяотредактировано, но я удалила лишние биты, которые вам не нужны.Все, что у нас есть / нужно, как я уже говорил ранее, это имя листа и строка / столбец редактирования (так что это все, что я определил).
Время:
Хорошо, вот где вам будет интереснее.Я провел 10 тестов с каждым скриптом.Вот результаты:
Old New
----- -----
0.120 0.062
0.132 0.061
0.196 0.060
0.125 0.052
0.130 0.055
0.118 0.054
0.128 0.057
0.138 0.054
0.124 0.056
0.126 0.060
Как видите, это довольно большое улучшение, почти вдвое быстрее с той же функциональностью, что и раньше.Мы по-прежнему проверяем имя листа и столбца и пишем дату точно так же, как это сделал ваш сценарий.
Ссылки:
- Объекты событий