Google sheets 代码中的数据验证(谷歌表单)

Google sheets 代码中的数据验证(谷歌表单),google-sheets,validation,Google Sheets,Validation,我有以下在“onEdit”触发器上运行的脚本(该部分工作正常) 大部分代码来自于问题的答案。问题是 dv.setCriteria(SpreadsheetApp.DataValidationCriteria.ITEM_IN_LIST,true,option ); 这行代码不起作用,编译器甚至不让我保存它。在我环顾四周的原因中,谷歌似乎已经改变了它的处理方式,并将他们关于它的文档离线。有人能帮我把这件事做好吗?是的,好像有些事情改变了 试试看: function onEdit() { var

我有以下在“onEdit”触发器上运行的脚本(该部分工作正常)

大部分代码来自于问题的答案。问题是

dv.setCriteria(SpreadsheetApp.DataValidationCriteria.ITEM_IN_LIST,true,option );

这行代码不起作用,编译器甚至不让我保存它。在我环顾四周的原因中,谷歌似乎已经改变了它的处理方式,并将他们关于它的文档离线。有人能帮我把这件事做好吗?

是的,好像有些事情改变了

试试看:

function onEdit() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = SpreadsheetApp.getActiveSheet();
  var myRange = SpreadsheetApp.getActiveRange();

  if(sheet.getName() == "Plan" && myRange.getColumn() == 2 && myRange.getRow() > 3){
    var option = new Array();
    option[0]="0";
    option[1]="1";
    option[2]="2";
    //    var dv = sheet.getRange(myRange.getRow(),myRange.getColumn() + 1).getValidation();
    var dv = sheet.getRange(myRange.getRow(),myRange.getColumn() + 1).getDataValidation();
    var dv = SpreadsheetApp.newDataValidation();
    //    dv.setAllowInvalidData(false);
    dv.setAllowInvalid(false);  
    dv.setHelpText("Some help text here");
    dv.requireValueInList(option, true);
//    dv.setCriteria(SpreadsheetApp.DataValidationCriteria.ITEM_IN_LIST,true,option );
//    sheet.getRange(myRange.getRow(),myRange.getColumn() + 1).setValidation(dv); 
    sheet.getRange(myRange.getRow(),myRange.getColumn() + 1).setDataValidation(dv.build()); 
  }
}

工作得很有魅力!你是不是在脑子里就知道了,还是在我没看到的地方找到了一些文件?谢谢我已经做过类似的事情了,但我真的不记得我是怎么做的,所以我把你的代码放在GAS编辑器中,玩了一点自动完成:D
function onEdit() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = SpreadsheetApp.getActiveSheet();
  var myRange = SpreadsheetApp.getActiveRange();

  if(sheet.getName() == "Plan" && myRange.getColumn() == 2 && myRange.getRow() > 3){
    var option = new Array();
    option[0]="0";
    option[1]="1";
    option[2]="2";
    //    var dv = sheet.getRange(myRange.getRow(),myRange.getColumn() + 1).getValidation();
    var dv = sheet.getRange(myRange.getRow(),myRange.getColumn() + 1).getDataValidation();
    var dv = SpreadsheetApp.newDataValidation();
    //    dv.setAllowInvalidData(false);
    dv.setAllowInvalid(false);  
    dv.setHelpText("Some help text here");
    dv.requireValueInList(option, true);
//    dv.setCriteria(SpreadsheetApp.DataValidationCriteria.ITEM_IN_LIST,true,option );
//    sheet.getRange(myRange.getRow(),myRange.getColumn() + 1).setValidation(dv); 
    sheet.getRange(myRange.getRow(),myRange.getColumn() + 1).setDataValidation(dv.build()); 
  }
}