我有一个非常简单的功能,当单元格的内容从“No”变为“Yes”时需要显示一条消息。我编写的代码运行良好,但无论输入的数据如何,消息都会显示。仅当单元格内容为“是”
时,才会显示该消息这是我的代码:
function onEdit(e){
var sheet = SpreadsheetApp.getActiveSheet();
var mftCell = sheet.getRange("E25:E26");
if (mftCell="Yes");
Browser.msgBox('Enter the % in the next cell!');
}
由于
答案 0 :(得分:1)
这里有一些问题。
现在编写代码的方式,Browser.msgBox调用不依赖于if语句。换句话说,您的代码检查值是否等于是,然后继续到下一行。您应该尝试 if (mftCell == "Yes") { Browser.msgBox(whatever); }
getRange()方法返回范围,而不是范围中的值。您应该在调用之后添加对.getValues()的调用以获取范围。请参阅:https://developers.google.com/apps-script/reference/spreadsheet/range#getValues()
请记住,即使只有一个单元格,getValues也会返回一个二维数组,因此您需要通过myValues[0][0]
之类的内容访问该值,以便查看特定值的值细胞
您希望在用户在字段中输入文本的比较中调用.toLowerCase()。 “是”==“是”评估为假,因此您应该有类似if (values[0][0].toLowerCase( == "yes"
的内容或输入“是”或“是”的用户或任何不会触发您的消息的内容。
此外,在if语句中需要'=='而不是'='。