Как получить значение выбранного элемента из выпадающего списка с помощью google-приложений-скрипта?

#google-apps-script #google-sheets

#google-приложения-скрипт #google-листы

Вопрос:

Мне нужно создать раскрывающийся список на листе, который может изменять имя листа каждый раз, когда я выбираю в нем значение. До сих пор это то, что мне удавалось делать:

 function renameSheet() {   //DEFINE ALL ACTIVE SHEETS var ss = SpreadsheetApp.getActiveSpreadsheet();  //GET SHEET  var dataSheet = ss.getSheetByName("Data"); var secondSheet = ss.getSheets()[1];  //PART DROPDOWN var partCell = secondSheet.getRange('A3');  var partLastRow = dataSheet.getLastRow(); var partRange = dataSheet.getRange('A2:A'   partLastRow); var partRule = SpreadsheetApp.newDataValidation().requireValueInRange(partRange).build(); partCell.setDataValidation(partRule);    var newName = secondSheet.getRange("A3"); secondSheet.setName(newName);  }  

Ответ №1:

Функция top изменяет название листа на листах 0,9 и 10

 function onEdit(e) {  const sh = e.range.getSheet();  const shts = ['Sheet0','Sheet10','Sheet9'];  const idx = shts.indexOf(sh.getName());  if(~idx amp;amp; e.range.columnStart == 1 amp;amp; e.range.rowStart == 1) {  sh.setName(e.value);  }  }  

Это создает раскрывающийся список имен листов из списка в ячейке A1

 function makeADropDown() {  const ss = SpreadsheetApp.getActive();  const sh = ss.getActiveSheet();  const r = SpreadsheetApp.newDataValidation().requireValueInList(['Sheet9', 'Sheet10', 'Sheet0']);  sh.getRange('A1').setDataValidation(r); }  

ДЕМОНСТРАЦИЯ:

введите описание изображения здесь

Комментарии:

1. Большое вам спасибо, вы мне очень помогли. Мне было интересно, можете ли вы порекомендовать мне курсы, мне нужно узнать больше, а мои источники ограничены.

2. На самом деле, я многому научился, работая здесь волонтером. Это заставляет вас проводить собственные исследования, и если вы этого не сделаете и скажете что-то неправильное, вы быстро узнаете об этом от других добровольцев. Но, вообще говоря, очень желательно изучать ECMAScript 2015, а затем копаться в скрипте Google apps. Также еще одним хорошим средством обучения является чтение ответов других людей и разработка их в качестве учебных пособий. Я постоянно просматриваю ответы лучших добровольцев, когда мне больше нечего делать, просто пытаюсь узнать у них все, что могу. Узнайте, как использовать инструменты разработчика браузеров.

3. Да, я думаю, что это сработает, хотя исследование отнимает у меня намного больше времени, чем я ожидал, и мой лучший источник на данный момент-переполнение стека. У меня есть еще один вопрос, касающийся автоматизации «добавления листов» и изменения размера ячеек в зависимости от размера изображений. Если вы тоже сможете мне в этом помочь, я буду вам очень благодарен. Даже с небольшими намеками. И еще раз спасибо вам.