Google apps script 如何获取以数字形式传递参数的选定单元格的值?
当我做这个addtotal函数时,当它添加所选的单元格时,它会说结果不是一个数字,但是所选的单元格只有数字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!并说结果不是数字,我对这一点不熟悉,不知道是什么。问题: 我设法复制了你的问题 您正在传递字
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通过创建可共享链接使工作表可供任何人使用。现在我没有看到它的许可。