Google Sheets Apps Script自定义函数Dn返回空白单元格的解决咨询
解决Google Apps Script中Dn函数返回空白的问题
问题出在变量作用域上:你在Dn函数外部声明了let n;,但在for循环里又用let n=0重新声明了一个仅在循环内部有效的局部变量。循环结束后,外部的n依然是未定义状态,所以函数返回空白。
修改方法很简单,去掉for循环里的let,直接使用外部声明的n变量:
function Dn(x,y) { let d; let n; // 去掉let,复用外部声明的n变量 for (n=0; x*n+20 < 580;n++){d=x*(n+1)+20;} if (d>y) {return "NOT VALID";} else {return n;} }
修改后,调用=Dn(200,1320)时,循环结束后n会保留最终的有效值(此处为3),函数就能正常返回结果了。
对比Deckel函数,它返回的d变量始终使用外部声明的实例,没有在循环内重新定义,所以能正常返回值。
内容的提问来源于stack exchange,提问作者Sensebe
相关产品推荐
相关产品推荐

