- Вы хотите скопировать значения, не удаляя формулы из активной электронной таблицы, в другую электронную таблицу с помощью скрипта Google Apps.
Если мое понимание правильное, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.
Модифицированный скрипт:
В этом случае данные, включая значения и формулы, помещаются в целевую электронную таблицу. Исходя из формулы вашего вопроса, я подумал, что этот метод можно использовать. Когда ваш скрипт изменяется, пожалуйста, измените его следующим образом.
С:
var FeedDataValues = FeedDataSheet.getRange(2,1,FeedDataLastRow-1,1).getValues();
Кому:
var values = FeedDataRange.getValues();
var FeedDataValues = FeedDataRange.getFormulas().map(function([e], i) {return [e || values[i][0]]});
Ссылки:
Если я неправильно понял ваш вопрос и это не тот результат, который вам нужен, я прошу прощения.
Добавлено:
- С ваш ответ ,
question. how do i modify this code to include 17 columns instead of just one?
К сожалению, я не могу понять о 17 column
из вашего ответа. Так, например, когда вы хотите получить ячейки «A1: Q», состоящие из 17 столбцов, как насчет следующей модификации?
Модифицированный скрипт:
От:
var FeedDataRange = FeedDataSheet.getRange(2, 1, FeedDataSheet.getLastRow()-1,1);
var FeedDataLastRow = FeedDataSheet.getLastRow();
var FeedMetricEmptyRange = FeedMetricSheet.getRange(2,1,FeedDataLastRow-1,1);
var FeedDataValues = FeedDataSheet.getRange(2,1,FeedDataLastRow-1,1).getValues();
FeedMetricEmptyRange.setValues(FeedDataValues);
До:
var FeedDataRange = FeedDataSheet.getRange(2, 1, FeedDataSheet.getLastRow()-1, 17);
var values = FeedDataRange.getValues();
var FeedDataValues = FeedDataRange.getFormulas().map(function(e, i) {return e.map(function(f, j) {return f || values[i][j]})});
FeedMetricSheet.getRange(2, 1, FeedDataValues.length, FeedDataValues[0].length).setValues(FeedDataValues);