Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Validation 使用单元格内容修改下拉菜单列表_Validation_Google Apps Script_Drop Down Menu_Google Sheets - Fatal编程技术网

Validation 使用单元格内容修改下拉菜单列表

Validation 使用单元格内容修改下拉菜单列表,validation,google-apps-script,drop-down-menu,google-sheets,Validation,Google Apps Script,Drop Down Menu,Google Sheets,我有一个Google Sheets,我在其中保存有关大学的信息,我有一个区域和国家栏(区域或大陆,不管你想看什么),我想做的是让区域栏包含所有大陆的下拉菜单(数据验证),具体取决于你选择的大陆,“国家”列将显示相应的国家 我有另一张表格,其中包含所需数据,第一行是大陆名称,其余行是该大陆的国家 我曾尝试过自定义公式,但由于太复杂而无法使用,所以我将其删除 如果有人知道我如何使用脚本编辑器或直接在数据验证中做到这一点,那就太好了 大陆和国家下拉列表 很抱歉,这有点牵连。让我们从我从哪里得到数据开始

我有一个Google Sheets,我在其中保存有关大学的信息,我有一个区域和国家栏(区域或大陆,不管你想看什么),我想做的是让区域栏包含所有大陆的下拉菜单(数据验证),具体取决于你选择的大陆,“国家”列将显示相应的国家

我有另一张表格,其中包含所需数据,第一行是大陆名称,其余行是该大陆的国家

我曾尝试过自定义公式,但由于太复杂而无法使用,所以我将其删除

如果有人知道我如何使用脚本编辑器或直接在数据验证中做到这一点,那就太好了

大陆和国家下拉列表 很抱歉,这有点牵连。让我们从我从哪里得到数据开始。这是网站:

实际上我只是复制并粘贴到一张名为“C&C”的纸上。我把它按大陆分类,然后按国家分类,我依靠它保持这样,因为它减少了获得国家的工作量

下面是谷歌脚本代码:

function onEdit(e) {
  var dlm=" - ";
  var msg="Start" + dlm;
  var sh=e.range.getSheet();
  if(sh.getName()!='DropDown')return;
  if(e.range.getA1Notation()=='A2' && e.value) {
    var dsh=e.source.getSheetByName('C&C');
    var drg=dsh.getRange(1,1,dsh.getLastRow(),1);
    var dvA=drg.getValues();
    var cA=[];
    var cStart=0;
    var cEnd=0;
    for(var i=0;i<dvA.length;i++) {
      if(!cEnd && !cStart && dvA[i][0]==e.value) {
        cStart=i+1;
        msg+="cStart: " + cStart + dlm;
        //e.source.toast(msg);
      }
      if(!cEnd && cStart && dvA[i][0]!=e.value || i==dvA.length-1) {
        cEnd=i+1;
        msg+="cEnd: " + cEnd + dlm;
        //e.source.toast(msg);
        break;
      }
    }
    var crg=dsh.getRange(cStart,3,cEnd-cStart+1,1);
    var cvA=crg.getValues();
    e.source.getRangeByName('Countries').clearContent();
    sh.getRange('B2').clearContent();
    e.source.getSheetByName('NamedRanges').getRange(2,2,cvA.length,1).setValues(cvA);
  }
  msg+="Exit" + dlm;
  e.source.toast(msg);
}
函数onEdit(e){
var dlm=“-”;
var msg=“开始”+dlm;
var sh=e.range.getSheet();
if(sh.getName()!='DropDown')返回;
if(e.range.geta1表示法()='A2'&&e.value){
var dsh=e.source.getSheetByName('C&C');
var drg=dsh.getRange(1,1,dsh.getLastRow(),1);
var dvA=drg.getValues();
var cA=[];
var-cStart=0;
var-cEnd=0;

对于(var i=0;i)您希望这些下拉列表出现在侧栏中吗?我只希望它们作为一个普通的下拉单元格,就像数据验证一样