我正在尝试创建的程序存在一个小问题。它应该计算出将某种能力提升到一定水平所需的exp值。我还没有那么远,因为我在CalculateCost函数结束时遇到了麻烦。我试图将一个字符串数组传递回调用CalculateCost的函数,但是,这不起作用,所以我尝试将所有值连接到一个字符串中。这也行不通。我知道我想要返回的变量不是null,因为我经常使用ui.alert()来检查变量的值。任何帮助将不胜感激。 这是有问题的谷歌表。 https://docs.google.com/spreadsheets/d/1Xo_uppFDI_C65EVi-TZ1iHTseK-Fg1izyCRkeTKaV9k/edit?usp=sharing 有问题的脚本称为能力价格计算器。
答案 0 :(得分:1)
似乎问题是函数CalculateCost没有返回任何内容......
function CalculateCost(abilityValues,index,level) {
var ui = SpreadsheetApp.getUi();
var ss = SpreadsheetApp.getActive();
var sheet = ss.getActiveSheet();
ui.alert("CalculateCost");
FindRequirements(abilityValues,index,sheet,level);
// current function returns nothing!
}
/* You may have thought, "oh but CalculateCost() already does the return,
so there's no need". However, when we call a function that contains
a return, it's as though we just paste the value that it returns.
Plus, there was no command (alert, prompt, etc) at the end of your
non-return-function, which made no sense. It made no sense to Google
at least, so it was... undefined. */
所以我把它改成了
function CalculateCost(abilityValues,index,level) {
var ui = SpreadsheetApp.getUi();
var ss = SpreadsheetApp.getActive();
var sheet = ss.getActiveSheet();
ui.alert("CalculateCost");
var reqs = FindRequirements(abilityValues,index,sheet,level); // notice the reqs var
return reqs; // this line was missing
}
此外,我在对代码进行故障排除时遇到了问题:我的主要问题是当我们单击菜单中的CalculateCost时,我们通常希望调用CalculateCost()函数,但实际上我们调用了InputValues()函数。当自定义函数没有绑定到同一菜单项时很容易迷失,所以也许你可以稍后改变它。
如果我的回答能帮助您解决问题,请告诉我吗?