Континент и Страна выпадающих списков
Я прошу прощения, но это немного запутано.Давайте начнем с того, где я получил данные.Это веб-сайт: https://datahub.io/JohnSnowLabs/country-and-continent-codes-list
Я просто скопировал и вставил его в лист с именем «C & C».Я отсортировал его по континентам, а затем по странам, и я зависел от того, чтобы он оставался таким, поскольку он уменьшает количество усилий, чтобы получить страны.
А вот код сценария Google:
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);
}
Я оставил там тосты отладки на случай, если вы захотите их.
Вот как выглядит страница C & C:
И вот страница, где я разместил NamedRanges.Я назвал эту страницу NamedRanges:
И вот страница с двумя выпадающими списками:
Отображается выбор континента в Южной Америке.
Вот настройки NamedRanges:
И вотНастройки проверки данных: