Google apps script 如何获取以数字形式传递参数的选定单元格的值?

Google apps script 如何获取以数字形式传递参数的选定单元格的值?,google-apps-script,google-sheets,Google Apps Script,Google Sheets,当我做这个addtotal函数时,当它添加所选的单元格时,它会说结果不是一个数字,但是所选的单元格只有数字 function ADDTOTAL(ref1, ref2) { var Number1 = ref1; var Number2 = ref2; var Number = Math.floor(Number1+Number2); return Number; } 它返回#NUM!并说结果不是数字,我对这一点不熟悉,不知道是什么。问题: 我设法复制了你的问题 您正在传递字

当我做这个addtotal函数时,当它添加所选的单元格时,它会说结果不是一个数字,但是所选的单元格只有数字

function ADDTOTAL(ref1, ref2) {
  var Number1 = ref1;
  var Number2 = ref2;
  var Number = Math.floor(Number1+Number2); 
  return Number;
} 
它返回#NUM!并说结果不是数字,我对这一点不熟悉,不知道是什么。

问题: 我设法复制了你的问题

您正在传递字符串而不是单元格引用:

或者用作引用的单元格的值是字符串。例如
“3”
是字符串,因为它有额外的空间,但
3
格式为字符串:

无论哪种方式,都可以传递字符串,但参数必须是数字,因为您正在进行数学运算

要确保单元格的值是一个数字,请执行
=ISNUMBER(A1)
。如果返回
TRUE
,则表示
A1
的值是一个数字。要将字符串数字转换为实际数字,请选择单元格并转到顶部菜单上的
Format=>number=>number

请记住,如果您将两个字符串(如
“3”
“1”
添加在一起,则不会得到
4
,而是
31
。我故意把格式改成纯文本。在这种情况下,
=isnumber(A1)
也将是
FALSE

解决: 假设单元格为实际数字,则有以下选项:

  • 传递单元格引用:

  • 您可以传递多个参数:

  • 最后,您可以使用将输入参数转换为数字:

    function ADDTOTAL(ref1, ref2) {
    var Number1 = parseFloat(ref1);
    var Number2 = parseFloat(ref2);
    var Number = Math.floor(Number1+Number2); 
    return Number;
    }
    

它对我有效。您在代码段中编写了
parseInt
而不是
parseFloat
。这是打字错误吗?它仍然返回#NUM!当我尝试解决方案并将其格式化为number@Blade共享工作表副本,但首先删除所有敏感信息。@Blade通过创建可共享链接使工作表可供任何人使用。现在我没有看到它的许可。