试图添加变量

时间:2013-11-01 16:08:29

标签: javascript variables calculator

我正在尝试使用表格在Google Script中构建计算器。 在这里,我使用两个输入(是的,它们已经被赋予var,它们被存储)并尝试添加它们以获得将进一步自动放入单元格B2的输出。

function doMath() {
    var add = (value1 + value2);
    SpreadsheetApp.getActiveSheet().getRange('B2').setValue(add);
}

但是这个错误信息不断弹出:

  

ReferenceError:未定义“value1”。

我对编程很新,所以我不知道问题是什么。

编辑:这是我定义输入的地方:

  function readInput() {
var value1 = SpreadsheetApp.getActiveSheet().getRange('A1').getValue();
var value2 = SpreadsheetApp.getActiveSheet().getRange('B1').getValue();

EDIT2:请记住,这是两个单独的功能。那是问题吗? 并且还注意到单元格A1和B1的值分别为8和9。 (作为例子)

2 个答案:

答案 0 :(得分:0)

您的value1和value2未定义。它们在不同的功能中定义。试试这个。

function doMath() {
    var value1 = SpreadsheetApp.getActiveSheet().getRange('A1').getValue();
    var value2 = SpreadsheetApp.getActiveSheet().getRange('B1').getValue();
    var add = (value1 + value2);
    SpreadsheetApp.getActiveSheet().getRange('B2').setValue(add);
}

答案 1 :(得分:0)

你的问题是关于js中的范围。在函数内部定义var时,它将在此函数的本地(即不在外部定义)。解决方案是在外部定义它们(即使它们成为全局)。

var value1, value2;

function doMath() {
    var add = (value1 + value2);
    SpreadsheetApp.getActiveSheet().getRange('B2').setValue(add);
}


function readInput() {
    value1 = SpreadsheetApp.getActiveSheet().getRange('A1').getValue();
    value2 = SpreadsheetApp.getActiveSheet().getRange('B1').getValue();
}

避免污染全局命名空间。您可以将其包含在自调用匿名函数中:

(function(){
 // your code…
})();