繁体   English   中英

数据验证规则不适用于查询(Google 表格中的导入范围

[英]Data validation rule is not working with query(importrange in Google Sheets

我正在将数据从一个电子表格导入到另一个电子表格:我的公式=QUERY(IMPORTRANGE在 C9 中。除了我的关于数据验证规则的脚本之外,一切都在工作。我希望只要有数据在 B 列中出现一个复选框列 C。

function createSpreadsheetOpenTrigger() {
   var ss = SpreadsheetApp.getActive();
   ScriptApp.newTrigger('onChange')
    .forSpreadsheet(ss)
    .onOpen()
    .create();

function onChange(event) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = event.source.getActiveSheet();
  var r = event.source.getActiveRange();

 // When a PO number is filled in Col8 or H, generate the data validation for the row   
  var lastRow = s.getLastRow();
  var listRange1 = ss.getSheetByName('Settings').getRange('B3:B7'); // list range for Factor Status
  var listRange2 = ss.getSheetByName('Settings').getRange('C3:C8'); // list range for Payment Status
    if (s.getName() == "2019-2020" && r.getRow() == lastRow && r.getColumn() == 8){
    var rule = SpreadsheetApp.newDataValidation().requireCheckbox().build()
    s.getRange(lastRow,2).setDataValidation(rule); // rule to create the check box data validation in Col2 or B
    var rule1 = SpreadsheetApp.newDataValidation().requireValueInRange(listRange1).build()
    s.getRange(lastRow,17).setDataValidation(rule1); // rule to create drop down list for Factor Status in Col17
    var rule2 = SpreadsheetApp.newDataValidation().requireValueInRange(listRange2).build()
    s.getRange(lastRow,16).setDataValidation(rule2); // rule to create drop down list for Payment Status in Col16
  }
 }
}

如果我在 C 列中手动添加内容,则脚本有效。 它不适用于导入的数据 有人有想法吗?

谢谢您的帮助!

IMPORTRANGE不会触发onEdit ,但会触发onChange

  • onChange是一个可安装的触发器
  • 重命名您的 function 并将onChange触发器绑定到它
  • 每次导入范围中有更新时,这应该运行您的 function

暂无
暂无

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

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