- Вы хотите получить значения из столбца "J" на листе
2020
в активной электронной таблице, используя getDisplayValue
. - . Вы хотите поместить полученные значения в другой столбец как текст.
- Вы хотите уменьшить стоимость процесса вашего текущего сценария.
Если мое понимание верно, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.
Точка модификации:
- В вашем скрипте
getDisplayValue
и setValue
используются в l oop. При этом стоимость процесса становится высокой.
Шаблон 1:
В этом шаблоне для снижения стоимости процесса getDisplayValues
и setValues
используются без использования Л oop. Таким образом, значения извлекаются как текстовые значения и помещаются в них как текстовые значения.
Модифицированный скрипт:
Когда ваш скрипт модифицируется, он становится следующим. Перед запуском скрипта установите переменные.
var primeira_linha = ##; // Please set the start row.
var ultima_linha = ##; // Please set the end row.
var sourceColumn = 10; // Source column. In this case, it's the column "J".
var destinationColumn = 10; // Please set the column you want to put the values. In this case, it's the column "J".
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("2020");
var values = sheet.getRange(primeira_linha, sourceColumn, ultima_linha - primeira_linha + 1).getDisplayValues();
sheet.getRange(primeira_linha, destinationColumn, values.length, 1).setNumberFormat("@").setValues(values);
- Из вашего скрипта кажется, что значения, полученные с помощью
getDisplayValues
из столбца «J», помещаются в тот же столбец. Таким образом, вышеописанный модифицированный скрипт - это тот же процесс. - И в этом случае, чтобы изменить формат ячейки, я использовал
setNumberFormat("@")
. В этом случае значения ставятся как текст. Если вы не хотите изменять формат ячейки. Удалите .setNumberFormat("@")
.
Шаблон 2:
В этом шаблоне используется copyTo
. В этом случае значения копируются в формате ячейки.
Модифицированный скрипт:
var primeira_linha = ##; // Please set the start row.
var ultima_linha = ##; // Please set the end row.
var sourceColumn = 10; // Source column. In this case, it's the column "J".
var destinationColumn = 10; // Please set the column you want to put the values. In this case, it's the column "J".
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("2020");
var sourceRange = sheet.getRange(primeira_linha, sourceColumn, ultima_linha - primeira_linha + 1);
var destinationRange = sheet.getRange(primeira_linha, destinationColumn);
sourceRange.copyTo(destinationRange);
Ссылки:
Если я неправильно понял ваш вопрос, и это было не то направление, которое вы хотите, я прошу прощения.