Google 脚本返回的不是数字

Google Scripts Returning Not a Number

我一直在研究 Google 脚本,但我似乎找不到解决问题的办法。我想要做的是将电子表格中两个单元格的内容与我的函数 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;
}

它的问题是,在我指定两个单元格相乘作为电子表格上函数的参数后,出现了一个错误 "Result was not a number." 我知道我的电子表格上的函数是正确的,所以这不是问题.....有什么想法吗?感谢您的帮助!

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

Google Sheets 根据单元格的值存储数据,值可能是 NumberBooleanDate 或 [=13= 类型](空单元格将 return 一个空字符串)。当 Custom Functions 使用这些值时,Apps 脚本将它们视为 JavaScript 中的适当数据类型。

您需要确保单元格的值是数字,考虑到如果单元格包含一些 space 或其他非数字字符,如 "2 2""3/2"它将被视为字符串,您需要 trim 或在任何计算之前提取这些特殊字符。