Я написал сценарий для периодической копирования данных из одного столбца в зависимости от того, была ли определена каждая ячейка с текущими данными (обозначена как ALIVE в другом столбце) и поместить эти данные в другой столбец на другом листе. Сценарий не превышает время выполнения, однако мне было интересно, есть ли способ сделать это быстрее, используя Массивы.Сокращение времени выполнения скриптов Google Apps с использованием массива?
Я ценю помощь, я новичок в программировании на Google Apps Script, но подключаюсь. Большое спасибо заранее за совет.
function copyFunctionDATA() {
var defSheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("(DATA)")
var defSheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("(DATAdead)")
var numLastRow = 60
for (var x=11; x<=numLastRow; x++) {
var srcRange = defSheet1.getRange(x,1);
var srcRange2 = defSheet1.getRange(x,1);
var value = srcRange.getValue();
var value2 = srcRange2.getValue();
if (value2.indexOf("ALIVE") !== -1) {
defSheet2.getRange(x,1).setValue(value);
}
}}
Серж, большое спасибо за код и пояснения ... это ценно, потому что концепция теперь имеет смысл, и я могу следовать логически. Да, я допустил ошибку в коде, в этом случае должен был быть столбец AN или 39. При запуске скрипта я получаю «TypeError: невозможно прочитать свойство« 0 »из неопределенного.» Строка 11. Я пытаюсь решить ее сам, прежде чем возвращаться, чтобы спросить, но она застревает в defSheet1 [x] [0]. Всего наилучшего. – HoosierTIM
Oooops извините, я забыл добавить'.getValues () 'в конце 2 строки ... (они там, где так долго, что я его не видел ;-) код обновлен (см. DefSheet 1 и 2) –
Serge , большое спасибо ... работает красиво. Я не думал возвращаться к defSheet 1 и 2. Дело только в том, что он записывает данные в DATAdead на все столбцы, а не только на колонку A. Это, как говорится, я должен уметь это понять, и я в вашем долге. Всего наилучшего. – HoosierTIM