Как мне добавить два значения? - PullRequest
1 голос
/ 18 сентября 2019

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

1 голос
/ 18 сентября 2019

Проблема:

e.value всегда возвращает строку, а оператор + объединяет две строки.

Решение:

Использование Number / parseInt дляприведите e.value к числовому типу.

Фрагменты:

updateRange1.getValue() + Number(e.value);
//OR
updateRange1.getValue() + parseInt(e.value);
//OR
updateRange1.getValue() + (+e.value);
0 голосов
/ 19 сентября 2019

Попробуйте это:

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);
  } 
}
...