繁体   English   中英

代码中的数据验证(Google表格)

[英]Data Validation in code (Google Sheets)

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

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();
    dv.setAllowInvalidData(false);
    dv.setHelpText("Some help text here");
    dv.setCriteria(SpreadsheetApp.DataValidationCriteria.ITEM_IN_LIST,true,option );
    sheet.getRange(myRange.getRow(),myRange.getColumn() + 1) .setValidation(dv); 
  }
}

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

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

这行代码行不通,编译器甚至都不会让我保存它。 在我寻找原因的过程中,Google似乎已经改变了处理方式,并使其文档脱机。 谁能帮我解决这个问题?

是的,似乎有些改变了...

尝试:

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()); 
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM