截至今天上午,以下代码正常运行
function onOpen(e)
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var range = sheet.getRange("B2:B100");
var dv = range.getDataValidation();
dv.requireValuesInList(["Shower","Shave","Shop"]);
dv.setShowDropDown(true);
range.setDataValidation(dv);
}
但是今晚,这两个函数都会显示错误消息:
TypeError: Cannot find function requireValuesInList in object DataValidation.
TypeError: Cannot find function requireValuesInRange in object DataValidation.
知道发生了什么事吗?这些功能被替换了吗?
为了测试,我创建了一个新的空白电子表格,粘贴在onOpen函数中并试图运行它......没有工作。
任何见解都非常有用。
答案 0 :(得分:1)
如果打印Object.keys(dv)[列出DataValidation对象的所有方法]的返回值,您现在得到: isAllowInvalidData,setAllowInvalidData,getCriteriaValues,setHelpText,的toString,setCriteria,getCriteria
似乎DataValidation原型刚刚完全改变,没有任何警告或变更文档。谷歌自己的文档(http://developers.google.com/apps-script/reference/spreadsheet/data-validation)指的是现已解散的DataValidation原型。
好一个Google!
Waqar,我不确定你怎么声称getDataValidation()没有记录。 getDataValidation()返回的DataValidation对象在我上面发布的链接中有详细记录。
答案 1 :(得分:0)
getDataValidation()方法未记录,因此我们无法说明实际发生了什么。最佳做法是仅使用那些记录的方法和类。
以下是问题跟踪器中相同的链接。你可以查一下。
https://code.google.com/p/google-apps-script-issues/issues/detail?id=2356