Как сложить два значения?
Итак, у меня есть код для вычитания одного значения из ячейки, но когда я пытаюсь скопировать код, чтобы функция IF добавляла числа в другую ячейку, это не работает. Я слышал, что "+" не действует как знак плюса, поэтому я надеюсь найти другой символ, который подойдет по мере необходимости. Вот код для вычитания. Работает отлично.
if (editRange.getA1Notation() == "R17"){
var updateRange = sheet.getRange("T17:Y18");
var newValue = updateRange.getValue() - e.value;
updateRange.setValue(newValue);}
А вот и плюс-код. Запускается нормально, но если бы у меня было "112" в диапазоне T17:Y18, и у меня было бы "8" в R18, значение в диапазоне было бы "1128".
if (editRange.getA1Notation() == "R18"){
var updateRange1 = sheet.getRange("T17:Y18");
var newValue1 = updateRange1.getValue() + e.value;
updateRange1.setValue(newValue1);}
2 ответа
Проблема:
e.value
всегда возвращает строку и +
оператор объединяет две строки.
Решение:
Использовать Number
/parseInt
транслировать e.value
к типу номера.
Фрагмент (ы):
updateRange1.getValue() + Number(e.value);
//OR
updateRange1.getValue() + parseInt(e.value);
//OR
updateRange1.getValue() + (+e.value);
Попробуй это:
function onEdit(e) {
//e.source.toast('1');//for debugging
var sh=e.range.getSheet();
if(e.range.getA1Notation()=="R18" && sh.getName()=='Sheet1') {//Limit action to only one cell in one sheet in the spreadsheet
var updateRange1=sh.getRange("T17");
var newValue1=Number(updateRange1.getValue()) + Number(e.value);
updateRange1.setValue(newValue1);
}
}