谷歌脚本返回不是一个数字

时间:2016-08-01 03:46:23

标签: javascript google-apps-script google-sheets spreadsheet google-apps

我一直在研究Google Scripts,但我似乎无法找到问题的解决方案。我想要做的是将电子表格中两个单元格的内容与我的函数calculateRates()相乘。这是我的代码:

/** 
@customFunction
*/
function calculateRates(hourDecimal, personRate) {
  var ss = SpreadsheetApp.getActiveSpreadsheet(); //Access spreadsheet
  var sheet = ss.getSheets()[0];  //Access sheet

  var range = sheet.getDataRange(); //Access all cells

  var values = range.getValues(); //Call to get value of certain cell

  var totalEarned = hourDecimal * personRate;
  Logger.log(totalEarned);

  return totalEarned;
}

问题在于,在指定两个单元格作为电子表格中函数的参数相乘后,会出现“结果不是数字”的错误。我知道我的电子表格上的功能正确,所以这不是问题.....任何想法?谢谢你的帮助!

1 个答案:

答案 0 :(得分:3)

当您尝试使用不是所有数字的值执行计算时会发生此错误,例如数字和字符串。

Google表格根据单元格的值存储数据,值可以是NumberBooleanDateString类型(空单元格将返回一个空字符串)。当Custom Functions使用这些值时,Apps脚本会将它们视为JavaScript中的相应数据类型。

您需要确保单元格的值是Numbers,考虑到如果单元格包含一些空格或其他非数字字符(如"2 2""3/2"),则会将其视为字符串在进行任何计算之前,您需要修剪或提取这些特殊字符。