Как сложить два значения?

Итак, у меня есть код для вычитания одного значения из ячейки, но когда я пытаюсь скопировать код, чтобы функция 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);
  } 
}
Другие вопросы по тегам