【问题标题】:Trying to add variables尝试添加变量
【发布时间】:2013-11-01 16:08:28
【问题描述】:

我正在尝试使用表格在 Google 脚本中构建一个计算器。 在这里,我使用了两个输入(是的,它们已经被赋予了 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。 (例如)

【问题讨论】:

  • 这是因为 value1 和 value2 没有在您的代码中任何地方定义。
  • 问题是value1没有定义。你在哪里设置?
  • 你在代码的什么地方声明了value1和value2,这个函数是从哪里调用的?
  • 你能在这里发布更长的代码(即使有声明)......也许你在不同的命名空间中声明它们,也许是别的东西......我们无法从这么短的时间内识别它代码。
  • value1是输入元素的id吗?

标签: javascript variables calculator


【解决方案1】:

您的 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);
}

【讨论】:

    【解决方案2】:

    您的问题是关于 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…
    })();
    

    【讨论】:

      猜你喜欢
      • 2014-11-17
      • 2019-06-21
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多