Infinite Dependent Dropdown Lists (part 2) (RU voice)

Поділитися
Вставка
  • Опубліковано 19 жов 2024
  • Infinite Dependent Dropdown Lists (part 2) (RU voice)
    This video details how to create Infinite Dependent Dropdown Lists using Google Apps Script.
    The good news is that you can automatically create sheets and formulas by pressing just one button from the user menu.
    The script described in the video can be found here: • Бесконечные Зависимые ...
    #DropdownLists #DependentDropdownLists #GoogleAppsScript #GoogleSheets

КОМЕНТАРІ • 98

  • @vasilisaprosto7213
    @vasilisaprosto7213 4 роки тому +3

    Спасибо Вам добрый и умный человек!

  • @nurmukhammedus
    @nurmukhammedus 3 роки тому +4

    Спасибо большое! Очень многое узнал

    • @IT4eachcom
      @IT4eachcom  3 роки тому +1

      И Вам спасибо!

  • @ЭдуардМорочоБайас
    @ЭдуардМорочоБайас 4 роки тому +4

    Дождался! Спасибо большое!

    • @IT4eachcom
      @IT4eachcom  4 роки тому +1

      Спасибо, что ждали!

    • @ЭдуардМорочоБайас
      @ЭдуардМорочоБайас 4 роки тому

      @@IT4eachcom Все сделал как по видео, но дополнительная ячейка как на ua-cam.com/video/e3xRFKOojyQ/v-deo.html не уходит(

    • @IT4eachcom
      @IT4eachcom  4 роки тому

      Сейчас специально создал новый файл, скопировал туда макрос и запусти. Всё работает, "лишняя ячейка" не появляется.
      Потом добавил / удалил столбцы на листе "Home" - снова "лишняя ячейка" среагировала правильно.
      За ограничение диапазона столбцов вправо (в функции onEdit(e) ) отвечает вот именно эта часть кода:
      var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Home');
      var colMax = sh.getLastColumn();
      if(list_name === "Home" && name !== oldName && col < colMax) {
      fillColumn(row, col, mask);
      }
      Если писали свой скрипт сами, то логично предположить, что где-то прячется ошибка. Соломоновым решением будет воспользоваться готовы скрипта с сайта.
      Либо возможен другой вариант: в лишнем столбце на листе Home есть какие-то данные. Тогда попробуйте их очистить. Или же просто удалите этот лист и создайте его заново с помощью скрипта.

  • @TrenerZvezdnaia
    @TrenerZvezdnaia 3 роки тому +3

    Всё рассказано великолепно! По таким роликам можно получить полноценное ОБРАЗование в области JS и GS.
    Вижу один явный ляп, который портит эффект ВАУ, после нажатия createMenu.
    Скрипт создаёт вначале лист Home, а после Data_2 и оставляет пользователя на этом Data_2, где ему нечего делать...
    Как быстро исправить?
    +
    Есть ещё один хороший/ещёЛучше вопрос: - как мотивировать, материально, автора записывать ролики такого уровня = часто. Нужна простая форма, для пересылки денег.

    • @IT4eachcom
      @IT4eachcom  3 роки тому +3

      Спасибо за отзыв!
      Отвечаю на вопросы:
      1.) добавить в конец скрипта строчку: SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Имя нужного листа").activate();
      по всей видимости вместо, "Имя нужного листа" должно быть "Home"
      2.) С этим сложнее - в последнее время много заказов.
      Но результат можно получить почти мгновенно, если выслать тех задание на IT4each.com@gmail.com

    • @TrenerZvezdnaia
      @TrenerZvezdnaia 3 роки тому +4

      @@IT4eachcom за 1). = Спасибо!
      2). - Напишите в реквизитах канала номер карты, я буду отправлять туда деньги, по мере просмотра и конспектирования роликов, а тем более появления новых.
      На почту буду писать обязательно этим летом, по мере формирования списка задач/вопросов для програМ, которые пишу.

    • @IT4eachcom
      @IT4eachcom  3 роки тому +3

      Возможность онлайн оплаты по карте есть на сайте it4each.com

    • @TrenerZvezdnaia
      @TrenerZvezdnaia 3 роки тому +2

      @@IT4eachcom про одинарные кавычки я догадался НЕ опытным путём : )
      Скрипт:
      SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Home').activate(); // = Отлично работает,
      поставленный в самом низу, но конечно перед };
      }
      Ещё раз = Спасибо!!!

  • @aleksprotopopov779
    @aleksprotopopov779 2 роки тому +1

    Спасибо очень нужные обучения, карма + тебе)))

    • @IT4eachcom
      @IT4eachcom  2 роки тому

      Спасибо за добрые слова и обратную связь)

  • @АлексейБобылев-л7г
    @АлексейБобылев-л7г 2 роки тому +1

    Добрый день, спасибо за ваш труд. Хотелось бы изменить скрипт так, что бы:
    1. Первый уровень выпадающих списков был со стобца C вмето A, что бы перед выпадающими списками были еще пара столбцов для своих формул;
    2. В одной таблице несколько однотипных листов с выпадающими списками, что бы несколько человек могли заполнять выпадающие списки в своих листах одновременно (результат заполнения на всех листах получится разный, но каталог данных одинаковый).

    • @IT4eachcom
      @IT4eachcom  2 роки тому +1

      Здравствуйте, Алексей!
      Спасибо за Ваш комментарий!
      Что же касается Вашего пожелания, то всё, что описано, реально сделать и это не займёт много времени.
      Правда, если с таблицей одновременно работает сразу несколько пользователей, то есть смысл всерьёз задуматься о базе данных. Пример подобной реализации таблицы, выполненной на фреймворке Django, есть на моём канале (см. ссылку в следующем комментарии)
      Пожалуйста, пришлите более подробное ТЗ на мой емейл: it4each.com@gmail.com

    • @IT4eachcom
      @IT4eachcom  2 роки тому

      ua-cam.com/video/PlrK55FISEI/v-deo.html

  • @SereGGA72
    @SereGGA72 4 роки тому +1

    Приветствую. А возможно ли реализовать автовставку следующих значений, если они *единственные* в выпадающих списках? Имхо, киллерфича.
    И ещё -- тут 36:02 в 10ю строку копируется излишнее создание объекта? В 8й же оно же:)

    • @IT4eachcom
      @IT4eachcom  4 роки тому +1

      Здравствуйте!
      Да, разумеется, автовставка *единственных* значений в списке технически возможна и займёт всего лишь несколько строк кода.
      И спасибо за то, что нашли опечатку. Восьмая строка действительно дублируется.

    • @SereGGA72
      @SereGGA72 4 роки тому +1

      @@IT4eachcom Спасибо, буду разбираться, как реализовать)

    • @IT4eachcom
      @IT4eachcom  4 роки тому +2

      Кстати, я сейчас подумал, что вместе со вставкой единственного значения было бы логично "сдвунуть" и ячейку редактирования на одно поле вправо. (Поскольку значение уже выбрано и ждать там больше нечего.)
      Так что несколькими строчками кода тут, пожалуй, не обойтись.

    • @IT4eachcom
      @IT4eachcom  4 роки тому +2

      И вообще автоматизация - это всегда палка о двух концах. Иногда "ручное" решение оказывается значительно быстрее и эффективнее "автоматизированного". Особенно, если автоматизировать совсем уж уникальные случаи.

  • @АлександрРаспевалов

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

    • @IT4eachcom
      @IT4eachcom  3 роки тому

      Ответ выслал на почту

  • @АлександрРаспевалов

    Подскажите пожалуйста, как возможно менять расположение столбцев в скрипте, что бы выпадающие списки в исходной таблице отображались в новом месте?

    • @IT4eachcom
      @IT4eachcom  3 роки тому

      Не уверен, что понял вопрос, но самый простой способ поменять столбцы в итоговом листе - это изменить их на листе *Data*

  • @yvs7271
    @yvs7271 4 роки тому +2

    Спасибо! есть 1 вопрос. а как в Home переместить эти столбцы? они должны быть не А В С и чуть дальше. если их передвинуть то все ломается

    • @IT4eachcom
      @IT4eachcom  4 роки тому +1

      Здравствуйте!
      Да совершенно верно, все формулы "заточены" на начало с первого столбца, поэтому, для вставки столбца (столбцов) в начало листа Home, надо аккуратно переписать формулы этого листа.
      Если сами не справитесь, напишите мне на IT4each.com@gmail.com

  • @alinadenisova2294
    @alinadenisova2294 4 роки тому +2

    Добрый день! А как сделать разрывы? Допустим между товарами (строками) нужно вставить строку с каким то итогом.

    • @IT4eachcom
      @IT4eachcom  4 роки тому +2

      Здравствуйте! Интересный вопрос!
      Сейчас - никак. Потому что любое изменение в столбце "А:А" запускает процедуру fillColumn(). А она первым делом удаляет всю информацию справа от ячейки редактирования.
      Но проблема легко решается, если добавить новое условие: Запускать процедуру fillColumn() только при условии, если в первой ячейке строки нет какого-нибудь ключевого слова. Например, слова "ИТОГО:"
      Если замените код в строке #13 вместо
      if(list_name === "Home" && name !== oldName && col < colMax) {
      на
      if(list_name === "Home" && name !== oldName && col < colMax && sh.getRange(row, 1).getValue() !== "ИТОГО:") {
      то в строке, где в первом столбце стоит "ИТОГО:", можно будет писать промежуточные итоги.
      ВАЖНО!!! В этой ячейке строки должно быть ИМЕННО то ключевое слово, что написано в if в строке #13.
      С точностью до каждого знака, без пробелов и кавычек!

  • @kamilgontarczyk
    @kamilgontarczyk 2 роки тому

    Спасибо за отлично проделанный труд.
    Вопрос в том, что когда начинаешь заполнять вторую строку - в первой уже ругается на ошибку.

    • @IT4eachcom
      @IT4eachcom  2 роки тому

      Здравствуйте, Игорь!
      Спасибо за обратную связь!
      Ответ на Ваш вопрос можно найти в следующем видео ua-cam.com/video/pABmdcpC2LA/v-deo.html или, как ещё одни вариант, сделать индивидуальный заказ на it4each@gmail.com

  • @antonbelyakov7052
    @antonbelyakov7052 3 роки тому +2

    Чтение по скрипту начинается с первого столбца) Мне необходимо сделать чтобы чтобы чтение было со 2го столба, т.е листе Home чтение со 2го столбца было) Как это осуществить?

    • @IT4eachcom
      @IT4eachcom  3 роки тому

      В скрипте следующего видео появилась переменная сдвига: ua-cam.com/video/MtVOiyODpv0/v-deo.html

    • @antonbelyakov7052
      @antonbelyakov7052 3 роки тому +1

      @@IT4eachcomвозможно ли что бы данный скрипт работал не только на одном листе, а сразу на нескольких? и что бы листов Home тоже было несколько

    • @IT4eachcom
      @IT4eachcom  3 роки тому

      Да, в последнем видео это реализовано: ua-cam.com/video/pABmdcpC2LA/v-deo.html

  • @irusher.gaming
    @irusher.gaming 3 роки тому +1

    Уважаемый, еще бы иметь пример таблицы уже готовой и настроенной, как у вас в видео, что бы там подшаманить свои переменные и всё заработало, цены вам не было бы

    • @IT4eachcom
      @IT4eachcom  3 роки тому +2

      Здравствуйте! В конце видео подробно показано, где взять и как настроить готовый скрипт, который всё сделает ща Вас.

    • @irusher.gaming
      @irusher.gaming 3 роки тому +1

      @@IT4eachcom Извиняюсь, посмотрел еще раз, вчера голова была вся забита другим, действительно всё очень просто, в конце видео инструкция за 5 сек сделать свой список)
      Скажите а возможно сделать что бы при выборе список добавлялся не справа, а снизу? или через строку от выбора?

    • @irusher.gaming
      @irusher.gaming 3 роки тому

      @@IT4eachcom ​ @IT4each com еще очень важный момент, как сделать, вот я выбираю например цифру 1 или 3 и в зависимости от этой цифры , мне надо что бы появлялось снизу такое количество выпадающих списков в столбик..

    • @IT4eachcom
      @IT4eachcom  3 роки тому

      Это возможно, но не быстро. Могу следать на заказ. Мой емейл it4each.com@gmail.com

    • @IT4eachcom
      @IT4eachcom  3 роки тому

      То же самое - задача нестандартная, поэтму придётся писать отдельный скрипт.

  • @СветланаМедведева-ц6э

    и тут таже ошибка вылазит Cannot read property 'range' of undefined (строка 3, файл Код). Куда смотреть? С чем может быть проблема?

    • @echipaproconsultingcca5731
      @echipaproconsultingcca5731 3 роки тому +1

      такая же проблема.

    • @IT4eachcom
      @IT4eachcom  3 роки тому

      В этом конкретном случае проблема возникла из-за ошибки в названии листа. Но в Вашим случае могут быть и другие причины:
      Либо сам код скопирован с сайта с ошибкой,
      либо ошибка в именах листов ( *Home*, *Data* ),
      либо нет данных на листе *Data* .
      Пожалуйста, проверьте ещё раз!

    • @echipaproconsultingcca5731
      @echipaproconsultingcca5731 3 роки тому

      @@IT4eachcom добрый день, но код не скопировал а писал его за вами по видео.

    • @IT4eachcom
      @IT4eachcom  3 роки тому

      Здравствуйте!
      Ну тем более, если писали сами, значит вероятность ошибки очень высока. Попробуйте скопировать код с сайта: it4each.com/blog/?tag=Dropdown+List
      И пожалуйста, ещё раз обратите внимание на имена листов. В идеале - скопируйте эти имена из скрипта!

  • @ivansemenikhin132
    @ivansemenikhin132 4 роки тому +2

    Здравствуйте. А где можно скачать данный sheet?

    • @IT4eachcom
      @IT4eachcom  4 роки тому +2

      Здравствуйте!
      Если Вы имеете в виду скрипт, то скачать его можно здесь: it4each.com/blog/beskonechnye-zavisimye-vypadaiushchie-spiski-v-google-sheets-chast-2/
      Обратите также внимание, что лист с данными ОБЯЗАТЕЛЬНО должен называться *Data*
      Всё остальные листы будет созданы автоматически, как только Вы запустите скрипт в пользовательском меню _'Custom Menu'_ .

    • @ivansemenikhin132
      @ivansemenikhin132 4 роки тому

      @@IT4eachcom Уважаемый, не все сильны в скриптах и я не лентяй, но уже 2 часа по-буквенно ввожу 1 в 1 ваши формулы и у меня ""Array result was not expanded because it would overwrite data in xxxx"
      Н" . Применил Transpose до фильтра - заработало, но проблема вылезла уже в другом... Прошу поделится готовым sheet'ом с формулами и скриптами, если это для вас приемлемо.

    • @ivansemenikhin132
      @ivansemenikhin132 4 роки тому

      Помнится как то давно работал с подобными списками и где-то обнаружил что та формула работала только с отсортированными значениями по алфавиту. Что с наскоку было ни разу не очевидно, и после сортировки все заработало. Здесь какойто подобный затык, но не могу его найти.

    • @IT4eachcom
      @IT4eachcom  4 роки тому +1

      Приемлемо конечно, просто не понятно, зачем это Вам нужно. Потому что скрипт и так САМ создаёт ВСЕ формулы.

    • @IT4eachcom
      @IT4eachcom  4 роки тому

      Как вариант, если хотите, могу провести индивидуальное занятие и подробно рассказать и показать как всё работает. Моя почта для связи: IT4each.com@gmail.com

  • @ilni_uslistingaccount
    @ilni_uslistingaccount 2 роки тому +1

    Здравствуйте, реально не могу понять как использовать скрипт в таблице где нужно создать например 15 листов на которых бы подтягивались данные для этих списков. Можете объяснить в какой строке, что нужно добавить, чтобы добавить листы в таблицу с нужными именами? Как настроить чтобы данные для этих листов тянулись из листа Data, но если нужно какой-то лист настроить на данные из Data_2? Помогите, пожалуйста.

    • @IT4eachcom
      @IT4eachcom  2 роки тому

      Здравствуйте!
      Если все листы однотипные - ссылаются на один и тот же лист Data, то их можно добавить вручную (скопировать с листа Home).
      Если же нужен вариант сложнее (у каждого Home - свой лист Data), то в комментарии это объяснить - нужно делать изменения сразу в нескольких местах.

    • @ilni_uslistingaccount
      @ilni_uslistingaccount 2 роки тому +1

      @@IT4eachcom Благодарю за ответ. Я уже нашел в одном из ваших видео ответ на свой вопрос. Немного подредактировал скрипт и довольно неплохо. Но одна ошибка выпадает при выполнении.
      01:21:52 Ошибка
      TypeError: Cannot read property 'range' of undefined
      onEdit @ Код.gs:10
      Не подскажите что это может быть?
      let row = e.range.getRow();
      эта строка даёт ошибку

    • @IT4eachcom
      @IT4eachcom  2 роки тому

      Чаще всего это ошибка в имени листа - должен быть Home
      В следующем видео (var 3) есть более "продвинутый" скрипт, который проверяет имена листов и выдаёт сообщение, если что-то не так.

  • @Форзац-к7ц
    @Форзац-к7ц 3 роки тому +1

    Такая вот проблема что скрипт делает все хорошо, но функция omEdit не может начать действовать если нет изначально записанных значений с первой колонки. А потому приходиться вводить вручную, что не очень удобно

    • @IT4eachcom
      @IT4eachcom  3 роки тому

      Здравствуйте!
      Непонятно почему так? onEdit() не должна зависеть от значения ячейки в колонке слева. Она зависит только от измения значения редактируемой ячейки. Ну и, разумеется, от разрешённого диапазона ячеек, указанного в условии этой функции.
      Кстати, в последнем видео ( ua-cam.com/video/pABmdcpC2LA/v-deo.html) в функцию onEdit() добавлены изменения: теперь формулы автоматически "протягиваются" на три строки ниже, считая от строки редактирования.

    • @Форзац-к7ц
      @Форзац-к7ц 3 роки тому +1

      @@IT4eachcom Наверное я неправильно выразился. Функции onEdit при запуске таблицы неоткуда взять первоначальные значения потому, как в первую колонку ничего не записывается и соответственно нету смены значения в ячейки после которой запускается функция FillColumn

    • @Форзац-к7ц
      @Форзац-к7ц 3 роки тому +1

      @@IT4eachcom По сути проблемы можно решить добавлением триггера который при нажатии на ячейку в колонке "А" листа "Home", а не смену значений, будет запускать запись значений в соответствующий столбец листа "Data_2", но к сожалению я достаточно криворукий что бы это не реализовать. Или как-то так

    • @IT4eachcom
      @IT4eachcom  3 роки тому

      Вы пишите: "Функции onEdit при запуске таблицы неоткуда взять первоначальные значения потому, как в первую колонку ничего не записывается и соответственно нету смены значения в ячейки после которой запускается функция FillColumn"
      Всё правильно! Формулы в первой колонке (которее затем и "подтягивают" значения в первый столбец) создаёт не *onEdit()* , а функция *createSheets()*
      И всё-таки, позвольте ещё раз предложить посмотреть следующие видео этой серии:
      ua-cam.com/video/MtVOiyODpv0/v-deo.html
      ua-cam.com/video/pABmdcpC2LA/v-deo.html
      Во-первых, там большет нет листа Data_2 и проблемы с ним связанной - красные треугольнички меток об ошибке там больше не появлятся.
      Во-вторых, формулы в первый столбец теперь проставляются автоматически при каждом изменении на основном листе
      . Поэтому функция *createSheets()* теперь тоже больше не нужна.

  • @zztimb
    @zztimb 3 роки тому +1

    Добрый день! Подскажите пожалуйста, почему если я даю доступ другому человеку к файлу, где я настроил скрипт, то у него не работают зависимые списки? Более того, даже если я просто с другого гугл-аккаунта на своем же компьютере открываю файл - скрипт не работает.

    • @IT4eachcom
      @IT4eachcom  3 роки тому

      Здравствуйте!
      Проверьте уровень доступа, который даётся другому пользователю. С максимальным уровнем доступа (Editor) скрипты гарантированно работают.

    • @zztimb
      @zztimb 3 роки тому +1

      @@IT4eachcom да, у меня стоит именно editor. Я специально сделал расширенные настройки. Может ли быть из-за того, что я на листы Data и Data2 защиту поставил?

    • @IT4eachcom
      @IT4eachcom  3 роки тому

      Скорее всего.

  • @ЛераВендина
    @ЛераВендина 3 роки тому +1

    Доброго времени суток, можно ди в данном файле " Бесконечные зависимые выпадающие списки" создавать колонки которые можно будет редактировать, у меня не получилось ( все колонки зависимые, можете пожалуйста помочь. Заранее спасибо

    • @IT4eachcom
      @IT4eachcom  3 роки тому

      Я Вам ответил по email!

    • @trn_vlad
      @trn_vlad Рік тому

      @@IT4eachcom А вы могли бы мне подсказать, как сделать так, чтобы зависимые колонки, были конечными? Т.е. по иерархии я хочу чтобы менялись только 3 стобца, а далее можно было самостоятельно редактировать, а то сейчас они все стираются при выборе первого зависимого поля.

    • @IT4eachcom
      @IT4eachcom  Рік тому

      Здравствуйте!
      Иными словами Вам нужно сделать так, чтобы ячейки справа от связанных списков не стирались?
      Насколько помню, это реализовано в следующем (по плейлисту) видео: ua-cam.com/video/pABmdcpC2LA/v-deo.html

    • @trn_vlad
      @trn_vlad Рік тому

      @@IT4eachcom спасибо! Я тут уже накостылил кое-как, но для чистоты кода обязательно изучу предложенное видео!

  • @vasilisaprosto7213
    @vasilisaprosto7213 4 роки тому +1

    К сожалению, у меня Скрипт не работает. Первая строчка без нареканий, все последующие - выдает ошибку (((

    • @IT4eachcom
      @IT4eachcom  4 роки тому +1

      Здравствуйте. Это более, чем странно...
      1. Скрипт в точности скопирован с сайта? (Все строчки кода от и до?)
      2. Лист с данными действительно ли называется *Data* ?
      3. Какая именно ошибка возникает на листе таблицы, начиная со второй строки? (и начиная с какого столбца?)

    • @vasilisaprosto7213
      @vasilisaprosto7213 4 роки тому +1

      @@IT4eachcom , здравствуйте!
      1. Скрипт скопирован и вставлен в точности по инструкции: copy на сайте, потом ctrl+А, ctrl+V)))
      2. да, Data
      3. Точнее, каждая новая строка без ошибки, но вот все предыдущие выдает Ошибку (не соответствует параметрам)
      Выдает ошибку во всех столбцах кроме первого.
      Я грешила на неуникальность данных. Удалила все , ввела уникальные даные, но все равно выдает ошибку((.
      Если удалить предыдущие заполненные строки, то в выпадающий список показывает только 1 значение, которое выбрано в самой последней строке, иногда что-то клинило и показывало все значения, но потом проходило и снова показывало одно ))

    • @IT4eachcom
      @IT4eachcom  4 роки тому +1

      @@vasilisaprosto7213 Ясно )
      Однако, согласитесь, что между фразами "у меня Скрипт не работает" и "скрипт работает, но в предыдущих строках появляется красный треугольник, при наведении на который возникает окно 'не соответствует параметрам'" - существует ОГРОМНАЯ разница )))
      Эта - ошибка валидации данных. Возникает из-за того, что данные на листе Data_2 меняются динамически. То есть каждая следующая строка меняет список данных на листе Data_2, и в этом новом списке отсутствуют ранее выбранное значение ячейки. А в последней строке таких "треугольничков" нет, поскольку Data_2 пока ещё содержит верные (с точки зрения валидатора) данные.
      И если Вы внимательно посмотрите видео, то такие же треугольнички заметите и там.
      К сожаление, эти треугольнички так просто не отключить. Поэтому вариант #1 - просто этого не замечать.
      Вариант #2: решить эту проблему "в лоб" можно вот таким способом: stackoverflow.com/questions/56533676/ignore-data-validation-errors-in-google-sheets
      Лично мне больше по душе вариант #3: просто удалять все формулы валидации (но не значения в ячейках!) как только строка пересатаёт быть активной. Тем более, что если строка начинает редактироваться, все эти формулы справа от ячейки редактирования и так будут удалены вместе с данными. Поэтому, если Вам нужна именно такая доработка скрипта, просто напишите мне на : IT4each.com@gmail.com

    • @vasilisaprosto7213
      @vasilisaprosto7213 4 роки тому

      @@IT4eachcom ​ здравствуйте!
      Однако, соглашусь, но не полностью.
      Красные флажки можно пережить (моя психика с таким справляется и даже без подкрашивания, которое описано в варианте №2))
      Про проблему валидации, или как ее там, догадалась, но это никак не облегчает процесс использования скрипта.
      * Главная проблема - невозможность нормально корректировать уже заполненные ячейки.
      Вариант в ручную - не подходит, иначе "ну зачем это все нужно было создавать?"
      А тем более при большом объеме информации, А тем более при нескольких пользователях листа.
      На данный момент использую корявенький скрипт на 2а ур-ня с потенциалом на несколько ур-ней.
      Удобно то что он работает для всех ячеек. Красные флажки появляются, но тогда когда действительно есть ошибка.
      Он тормозит, грешила на его корявость, но оказалось - зря ))
      Не отношу себя к тем умным людям, которые умеют создавать такие чудесные, рабочие скрипты (действительно восхищаюсь Вами), но весь этот скрипт обеспечивает нормальную работу только одной строчки (?!) серьезно ?
      **Это лично мое субъективное мнение стороннего наблюдателя.
      Мое восхищение такими людьми как Вы от этого не уменьшится.

    • @IT4eachcom
      @IT4eachcom  4 роки тому +1

      Большое спасибо за огромное количество добрых слов )))
      Однако, если раздражающие треугольники Вам не особо мешают, то я не могу понять, чем плох существующий вариант? И в чём конкретно проявляется _невозможность нормально корректировать уже заполненные ячейки_ ?
      Если необходимо отредактировать созданную ранее строку, Вы просто меняете значение в первой (крайней левой) ячейке этой самой строки. Это действие автоматически запускает скрипт, который вновь создаёт валидную формулу в следующей (второй слева) ячейке.
      Вы выбираете нужное значение и снова запускаете скрипт, но уже для третьей ячейки.
      И так последовательно, до самого конца строки Вы можете изменить значения всех имеющихся в ней ячеек.
      Что Вам не нравится в этом варианте?

  • @АлександрРаспевалов

    И скрипт выдает ошибку,
    TypeError: Cannot read property 'range' of undefined
    onEdit @ Код.gs:3

    • @IT4eachcom
      @IT4eachcom  3 роки тому

      А что Вы сделали перед этим?

  • @echipaproconsultingcca5731
    @echipaproconsultingcca5731 3 роки тому

    Не читает ваш код

    • @echipaproconsultingcca5731
      @echipaproconsultingcca5731 3 роки тому +1

      и TypeError: Cannot read property 'value' of undefined ( " let name = e.value; ")

    • @IT4eachcom
      @IT4eachcom  3 роки тому +1

      Здравствуйте!
      Либо сам код скопирован с сайта с ошибкой,
      либо ошибка в именах листов ( *Home*, *Data* ),
      либо нет данных на листе *Data* .
      Пожалуйста, проверьте ещё раз!

    • @echipaproconsultingcca5731
      @echipaproconsultingcca5731 3 роки тому

      Ни одну из этих обозначерий не читает))
      TypeError: Cannot read property 'oldValue' of undefined
      TypeError: Cannot read property 'value' of undefined
      TypeError: Cannot read property 'source' of undefined

    • @IT4eachcom
      @IT4eachcom  3 роки тому

      Здравствуйте!
      Попробуйте скопировать код с сайта: it4each.com/blog/?tag=Dropdown+List
      И пожалуйста, ещё раз обратите внимание на имена листов. В идеале - скопируйте эти имена из скрипта!

    • @echipaproconsultingcca5731
      @echipaproconsultingcca5731 3 роки тому

      12:47:33 PM Notice Execution started
      12:47:33 PM Error
      TypeError: Cannot read property 'range' of undefined
      onEdit @ Code.gs:3