我一直在研究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;
}
问题在于,在指定两个单元格作为电子表格中函数的参数相乘后,会出现“结果不是数字”的错误。我知道我的电子表格上的功能正确,所以这不是问题.....任何想法?谢谢你的帮助!
答案 0 :(得分:3)
当您尝试使用不是所有数字的值执行计算时会发生此错误,例如数字和字符串。
Google表格根据单元格的值存储数据,值可以是Number
,Boolean
,Date
或String
类型(空单元格将返回一个空字符串)。当Custom Functions
使用这些值时,Apps脚本会将它们视为JavaScript中的相应数据类型。
您需要确保单元格的值是Numbers,考虑到如果单元格包含一些空格或其他非数字字符(如"2 2"
或"3/2"
),则会将其视为字符串在进行任何计算之前,您需要修剪或提取这些特殊字符。