Google表单中已链接的选择列表已连接到Google表格

时间:2015-08-24 15:27:46

标签: google-apps-script google-apps selectlist

我有一个带有标签«客户端»的Google工作表文档(A列:客户名称)和标签«项目»(A列:项目名称,B列:客户名称(选择列表包含)数据验证))。然后我有一个Google表单,我想显示2个选择列表:客户端和项目,但是当选择客户端只显示所选客户端的项目时,必须更新第二个列表(项目)...我怎么能那样做?

1 个答案:

答案 0 :(得分:0)

要创建链接列表,您可以按照下一种方法进行操作(对于此示例,我将描述如何在电子表格中创建列表):

  1. 创建新工作表;在一列中列出客户端的名称,在第二列中列出客户端的所有项目(每个项目使用一行)
  2. 为每个客户创建一个命名范围,并选择与客户名称匹配的所有项目的范围。
  3. 最后,在数据验证作为列表的单元格中声明一个列表,其中包含客户的所有名称。
  4. 在您的代码中,您想检查列表中的值>使用该值>查找命名范围根据范围列表中的值创建新列表。

    `function onEdit(){

    var aSheet = SpreadsheetApp.getActiveSheet();  var aCell = aSheet.getActiveCell();  var aColumn = aCell.getColumn();

    //确认我正在编辑客户列表  if(aColumn == 4){    //找到显示项目列表的位置    var range = aSheet.getRange(aCell.getRow(),aColumn + 1);    //找到类别的名称(客户端)    var categoryName = aCell.getValue();    //删除名称的空格(如命名范围不能包含特殊字符或空格)    categoryName = categoryName.replace(/ \ s / g,'');    //根据所选类别识别命名范围    var sourceRange = SpreadsheetApp.getActiveSpreadsheet()。getRangeByName(categoryName);    setDataValid_(range,sourceRange);  } }

    function setDataValid_(range,sourceRange){  var rule = SpreadsheetApp.newDataValidation()。requireValueInRange(sourceRange,true).build();  range.setDataValidation(规则); }`

  5. 我创建了以下项目,以便您了解它的工作原理: https://docs.google.com/spreadsheets/d/1gUZ-mxwjaiKoc0KcZo8UnFglvyWsC1vpoT6XOLftZDA/edit?usp=sharing