Вы столкнулись с распространенной проблемой новичка, у которой возникла проблема с разграничением диапазонов и значений.
Диапазон выражает область электронной таблицы с помощью методов, которые предоставляют вам доступ к различным характеристикам объекта.Содержимое или данные, которые вы видите в электронной таблице, доступны с помощью метода .getValue()
(для одной ячейки) или .getValues()
(для нескольких ячеек).
Изменение:
var mon = sheet.getRange(c, e);
Кому:
var mon = sheet.getRange(c, e).getValue();
... и у вас будут данные, которые находятся в этом диапазоне, в виде строки, числа или даты, в зависимости от того, что там было.
Имена переменных, которые вы выбрали, могут привести к путанице, с этим стоит быть осторожным.Например, посмотрите на valuerplc
.Название подразумевает, что это значение, которое можно спутать с .getValue()
и .setValue()
.Но он используется как Range, как в valuerplc.setValue(mon)
, так что это явно НЕ значение.
function Transform() {
//load spreadsheet data and initialise variables
var sheet = SpreadsheetApp.getActiveSheet();
var firstrow = 11;//this is a manual figure
var d = firstrow;
var valuerplc = sheet.getRange(firstrow, 38);
var value =1;
for(var c=firstrow; c<sheet.getLastRow(); c++){
for (var e=3; e<33; e=e+6){
var mon = sheet.getRange(c, e).getValue();
valuerplc = sheet.getRange(d, 38);
valuerplc.setValue(mon);
}
d++;
}
}