Для электронных таблиц нет события onClick. Однако вы можете определить, какой из именованных диапазонов редактируется. Вам нужно будет установить и активировать onEdit для InstallonEdit, и не забудьте вставить e.
function InstallibleonEdit(e) {
sh=e.range.getSheet();
if(sh.getName()!="Sheet162"){return;}//You will probably want to change this sheet name
var cell={row:e.range.rowStart,column:e.range.columnStart};
var rA=isInNamedRanges(cell);
if(rA) {
var html=rA.join(', ');
var userInterface=HtmlService.createHtmlOutput(html);
SpreadsheetApp.getUi().showModelessDialog(userInterface, 'In these ranges');
}
}
function isInNamedRanges(cell) {
var ss=SpreadsheetApp.getActive();
var nrgs=ss.getNamedRanges();
var inrgs=[];
for(var i=0;i<nrgs.length;i++) {
var rg=nrgs[i].getRange();
var columnStart=rg.getColumn();
var rowStart=rg.getRow();
var columnEnd=columnStart + rg.getWidth() - 1;
var rowEnd=rowStart + rg.getHeight() -1;
var range={left:columnStart,right:columnEnd,top:rowStart,bottom:rowEnd};
if(isCellInRange(cell,range)) {
inrgs.push(nrgs[i].getName());
}
}
return inrgs;
}
function isCellInRange(cell,range) {
if(cell.row>=range.top && cell.row<=range.bottom && cell.column>=range.left && cell.column<=range.right) {
return true;
}else{
return false;
}
}
Правда, это немного затянуто, но должно служить примером. Скорее всего, вам захочется удалить диалоговое окно, которое является требованием для установленного триггера Это также обнаружит несколько перекрывающихся именованных диапазонов.
Вот так выглядел мой лист. Я изменяю фон на названных диапазонах.
Вы можете обнаружить щелчок флажка, так как это действие также выполнит редактирование. Поэтому, если вы включите флажки в свои диапазоны, вы сможете обнаружить, что пользователи нажимают на них.