Я разработал различные электронные таблицы, которые все взаимосвязаны, чтобы автоматизировать планирование задач для разных подразделений.однако по мере роста системы время выполнения моих функций возрастало из-за увеличения объема данных, которые нужно просматривать, анализировать и изменять.Я проследил проблему до того факта, что у меня есть вложенные циклы, которые с помощью оператора if повторно инициализируют массив после изменения листа, чтобы продолжить с новыми значениями в массиве для ссылки на оператор if.
Я искал в Интернете и в ссылках Google, но до сих пор не нашел ответа.Я программист-любитель, поэтому я признаю тот факт, что, возможно, я пропустил то, что я искал, просто потому, что я зеленый и все еще учусь. Поэтому я извиняюсь, если это глупый вопрос
function myFunction(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var lastC = sheet.getLastColumn();
var lastC = sheet.getLastColumn();
var lastR = sheet.getLastRow();
var valueA = sheet.getRange(1, 1, lastR, lastC).getValues();
var value3 = 1;
for(i=0; i<lastR-1; i++){
var value1 = valueA[i][0];
for(j=0; j<lastR-1; j++){
for(k=0; k<lastR-1; k++){
var value2 = valueA[k+1][j];
if(value1 <= value2){
var valueDest = sheet.getRange(k, j-1);
valueDest.setValue(value3);
value3 = value3 +1;
valueA = sheet.getRange(1, 1, lastR, lastC).getValues();
}
}
}
}
}
Пожалуйста, извините за любые ошибкиэтот код написан на скорую руку, чтобы дать представление о том, что я пытаюсь выполнить
это последняя строка оператора if, ограничивающая скорость выполнения
Есть ли способ изменитьзначение в массиве с кодом вместо того, чтобы снова и снова вызывать массив из листа, чтобы ускорить выполнение