range.requireValuesInList和requireValuesInRange似乎被打破了

时间:2013-04-23 02:08:56

标签: google-apps-script google-sheets

截至今天上午,以下代码正常运行

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函数中并试图运行它......没有工作。

任何见解都非常有用。

2 个答案:

答案 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