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