Google Script猜谜游戏报错:变量A2、B2未定义的解决方法
解决Google Script猜谜游戏中A2、B2未定义的问题
我帮你排查下问题,你遇到的A2、B2未定义错误,核心是变量作用域问题,还有代码里的小拼写错误,咱们一步步解决:
问题根源
- 变量作用域错误:你在
function1()函数内部定义了A2和B2,但后面判断这两个变量的if语句却写在了函数外面!在JavaScript(Google Apps Script基于JS)中,函数内部声明的变量属于局部变量,只能在函数内部访问,外部代码无法读取,所以会触发“未定义”错误。 - 拼写错误:代码里有一处
activeSheet.getRance(2,3),这里应该是getRange(多打了一个n),这个拼写错误也会导致执行报错。
修正后的完整代码
function function1() { var app = SpreadsheetApp; var activeSheet = app.getActiveSpreadsheet().getActiveSheet(); var A1 = activeSheet.getRange(1,2).getValue(); var B1 = activeSheet.getRange(1,3).getValue(); var A2 = activeSheet.getRange(2,2).getValue(); var B2 = activeSheet.getRange(2,3).getValue(); if(A1 === "apple"){ activeSheet.getRange(1,3).setValue("correct"); } else { activeSheet.getRange(1,3).setValue("Wrong"); } if(B1 === "correct"){ activeSheet.getRange(2,1).setValue("what is the colour of an orange?"); } if(A2 === "orange"){ activeSheet.getRange(2,3).setValue("Correct"); } else { activeSheet.getRange(2,3).setValue("Wrong"); } if(B2 === "Correct"){ activeSheet.getRange(2,1).setValue("(Another question"); } }
额外建议
为了让代码更易读,你可以给变量起更语义化的名字,比如把A1改成firstAnswer,B1改成firstResult,这样后续维护代码时能快速理解每个变量的用途。
内容的提问来源于stack exchange,提问作者howaboutno
相关产品推荐
相关产品推荐

