Доброго времени суток! Как уведомить пользователя при вводе повторного значения. Пример прикладываю. Условное форматирование не подходит, слишком много несмежных диапазонов, да и ячеек много. А может просто я им пользоваться толком не умею....
Доброго времени суток! Как уведомить пользователя при вводе повторного значения. Пример прикладываю. Условное форматирование не подходит, слишком много несмежных диапазонов, да и ячеек много. А может просто я им пользоваться толком не умею....Мур
Словарём - это значит используя Object("Scripting.Dictionary"). При каждом изменении помещаем все значения (кроме неучитываемых) в словарь. Если ошибка - значит такое значение уже есть.
Словарём - это значит используя Object("Scripting.Dictionary"). При каждом изменении помещаем все значения (кроме неучитываемых) в словарь. Если ошибка - значит такое значение уже есть.Hugo
Игорь, здорово получилось. Но из личного опыта позволю дать один совет по использованию словарей: - лучше (и понятнее, и меньше возможности ошибиться) записывать не
Code
If Len(vv.Value) > 0 Then .Add vv.Value, 0
а
Code
If Len(vv.Value) > 0 Then .Add Key:=vv.Value, Item:=0
Эта рекомендация связана с тем, что порядок перечисления аргументов метода Add у коллекции и словаря разный: - для словаря: .Add (Key, Item) - для коллекции: .Add (Item, [Key], [Before | After]) Поэтому, если не использовать именованные аргументы, да ещё и учитывая, что у коллекции Key - опциональный As String, а у словаря - обязательный и может быть чем угодно кроме массива, то выловить ошибку может быть очень трудно.
Игорь, здорово получилось. Но из личного опыта позволю дать один совет по использованию словарей: - лучше (и понятнее, и меньше возможности ошибиться) записывать не
Code
If Len(vv.Value) > 0 Then .Add vv.Value, 0
а
Code
If Len(vv.Value) > 0 Then .Add Key:=vv.Value, Item:=0
Эта рекомендация связана с тем, что порядок перечисления аргументов метода Add у коллекции и словаря разный: - для словаря: .Add (Key, Item) - для коллекции: .Add (Item, [Key], [Before | After]) Поэтому, если не использовать именованные аргументы, да ещё и учитывая, что у коллекции Key - опциональный As String, а у словаря - обязательный и может быть чем угодно кроме массива, то выловить ошибку может быть очень трудно.Alex_ST
считает, сколько раз каждое значение из диапазона $H$1:$H$9 встречается в диапазоне $A$2:$C$4; если нет совсем - то "0", если один раз - то "1", если есть повторы - то больше одного. Остальное, думаю, понятно. Возможно и без УФ - пример в голубой ячейке. На листе эта формула должна вводиться как формула массива. В желтых ячейках - наглядно, что возвращает формула =СЧЁТЕСЛИ($A$2:$C$4;$H$1:$H$9) (введена массивом в весь желтый диапазон)
считает, сколько раз каждое значение из диапазона $H$1:$H$9 встречается в диапазоне $A$2:$C$4; если нет совсем - то "0", если один раз - то "1", если есть повторы - то больше одного. Остальное, думаю, понятно. Возможно и без УФ - пример в голубой ячейке. На листе эта формула должна вводиться как формула массива. В желтых ячейках - наглядно, что возвращает формула =СЧЁТЕСЛИ($A$2:$C$4;$H$1:$H$9) (введена массивом в весь желтый диапазон)Michael_S
здравствуйте а чем вас не устраивают свои штатные Excel-евские средства ? P.S. Файл Michael_S, у меня не открылся ... Возможно этот пост - повторение той же информации P.P.S. со второй попытки я тоже смог ознакомится с файлом Michael_S
здравствуйте а чем вас не устраивают свои штатные Excel-евские средства ? P.S. Файл Michael_S, у меня не открылся ... Возможно этот пост - повторение той же информации P.P.S. со второй попытки я тоже смог ознакомится с файлом Michael_S0mega
Автору нужно запретить (известить о) ввести уже введённые в диапазон данные, но проверка ввода уже используется для ввода этих данных. Так понятно?
Автору нужно запретить (известить о) ввести уже введённые в диапазон данные, но проверка ввода уже используется для ввода этих данных. Так понятно? Hugo