Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Поиск макросом значения в именованном диапазоне - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск макросом значения в именованном диапазоне (Макросы/Sub)
Поиск макросом значения в именованном диапазоне
Kamikadze_N Дата: Среда, 25.01.2017, 17:04 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 75
Репутация: 6 ±
Замечаний: 0% ±

Excel 2010
Добрый вечер. Подскажите пожалуйста что именно не так с кодом, при поиске значения в именованном диапазоне?
Вот код на котором выдает ошибку
[vba]
Код

DiapN = Worksheets("Work").Cells(ActiveCell.Row, 2)                    'находим нужный именной диапазон
If WorksheetFunction.CountIf(Worksheets("dbDiap").Range("DiapN"), Target) = 0 Then   'пытаемся выполнить поиск по этому именованному
                    'диапазону
        
[/vba]
Собственно пытаюсь, сделать так что бы если значения нет в выпадающем списке оно добавлялось в именованный диапазон. Ошибка выскакивает при нажатии на столбец С. файл с примером прилагается, за ранее спасибо за помощь...
К сообщению приложен файл: 5048117.xlsm (25.2 Kb)
 
Ответить
СообщениеДобрый вечер. Подскажите пожалуйста что именно не так с кодом, при поиске значения в именованном диапазоне?
Вот код на котором выдает ошибку
[vba]
Код

DiapN = Worksheets("Work").Cells(ActiveCell.Row, 2)                    'находим нужный именной диапазон
If WorksheetFunction.CountIf(Worksheets("dbDiap").Range("DiapN"), Target) = 0 Then   'пытаемся выполнить поиск по этому именованному
                    'диапазону
        
[/vba]
Собственно пытаюсь, сделать так что бы если значения нет в выпадающем списке оно добавлялось в именованный диапазон. Ошибка выскакивает при нажатии на столбец С. файл с примером прилагается, за ранее спасибо за помощь...

Автор - Kamikadze_N
Дата добавления - 25.01.2017 в 17:04
bmv98rus Дата: Среда, 25.01.2017, 17:19 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4108
Репутация: 768 ±
Замечаний: 0% ±

Excel 2013/2016
Kamikadze_N,
Вы перепутали именованный диапазон и обьект. или вы на листе "dbDiap" определите имя "DiapN" как именованный диапазон,
или
[vba]
Код
Set DiapN = Worksheets("dbDiap").Cells(ActiveCell.Row, 2)
If WorksheetFunction.CountIf(DiapN, Target) = 0 Then Debug.Print 0
[/vba]


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеKamikadze_N,
Вы перепутали именованный диапазон и обьект. или вы на листе "dbDiap" определите имя "DiapN" как именованный диапазон,
или
[vba]
Код
Set DiapN = Worksheets("dbDiap").Cells(ActiveCell.Row, 2)
If WorksheetFunction.CountIf(DiapN, Target) = 0 Then Debug.Print 0
[/vba]

Автор - bmv98rus
Дата добавления - 25.01.2017 в 17:19
Kamikadze_N Дата: Среда, 25.01.2017, 20:07 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 75
Репутация: 6 ±
Замечаний: 0% ±

Excel 2010
bmv98rus, ничего я не перепутал, если файл приложеный открыть станет понятен фрагмент кода.
На листе Work, при клике по столбйу С в любую ячейку переменной DiapN присваивается значение с этого листа находящегося в левее от выделеной ячейки.
Т.е. если кликнули на листе Work по ячейке С2 то переменная DiapN должна присвоить значение из ячейки B2. Все на этом же листе. Это вот эта вот строка кода.[vba]
Код

Set DiapN = Worksheets("dbDiap").Cells(ActiveCell.Row, 2)
[/vba]
А далее На листе dbDiap мы обращаемся к именованному диапазону, имя которого совпадается с переменной DiapN , (то есть находим этот диапазон). И проверяем
Есть ли в нем значение активной ячейки (в нашем случае значение из ячейки С2)
[vba]
Код

If WorksheetFunction.CountIf(Worksheets("dbDiap").Range("DiapN"), Target) = 0 Then
[/vba]
А на листе dbDiap и так определен такой именованный диапазон с именем как у переменной DiapN. Собственно если опять таки открыть приложеный файл то увидите что сначала выбирается из столбца B выпадающим списком какое либо значение, а каждое из этих значение именованный диапазон. и уже только потом можно открыть зависимый список в столбце С.
В том и суть что и переменная объявляется и с именованым диапазонам по которому посик выполнять нужно она совпадает, но почему ошибку выдает я не догоняю (
 
Ответить
Сообщениеbmv98rus, ничего я не перепутал, если файл приложеный открыть станет понятен фрагмент кода.
На листе Work, при клике по столбйу С в любую ячейку переменной DiapN присваивается значение с этого листа находящегося в левее от выделеной ячейки.
Т.е. если кликнули на листе Work по ячейке С2 то переменная DiapN должна присвоить значение из ячейки B2. Все на этом же листе. Это вот эта вот строка кода.[vba]
Код

Set DiapN = Worksheets("dbDiap").Cells(ActiveCell.Row, 2)
[/vba]
А далее На листе dbDiap мы обращаемся к именованному диапазону, имя которого совпадается с переменной DiapN , (то есть находим этот диапазон). И проверяем
Есть ли в нем значение активной ячейки (в нашем случае значение из ячейки С2)
[vba]
Код

If WorksheetFunction.CountIf(Worksheets("dbDiap").Range("DiapN"), Target) = 0 Then
[/vba]
А на листе dbDiap и так определен такой именованный диапазон с именем как у переменной DiapN. Собственно если опять таки открыть приложеный файл то увидите что сначала выбирается из столбца B выпадающим списком какое либо значение, а каждое из этих значение именованный диапазон. и уже только потом можно открыть зависимый список в столбце С.
В том и суть что и переменная объявляется и с именованым диапазонам по которому посик выполнять нужно она совпадает, но почему ошибку выдает я не догоняю (

Автор - Kamikadze_N
Дата добавления - 25.01.2017 в 20:07
Kamikadze_N Дата: Среда, 25.01.2017, 20:28 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 75
Репутация: 6 ±
Замечаний: 0% ±

Excel 2010
Все извиняюсь в очередной раз за беспокойство, нашел ошибку, DiapN переменная была в кавычках, в этой строке[vba]
Код
If WorksheetFunction.CountIf(Worksheets("dbDiap").Range("DiapN"), Target) = 0 Then
[/vba] вот он и ругался, не мог найти такой именованный диапазон.
 
Ответить
СообщениеВсе извиняюсь в очередной раз за беспокойство, нашел ошибку, DiapN переменная была в кавычках, в этой строке[vba]
Код
If WorksheetFunction.CountIf(Worksheets("dbDiap").Range("DiapN"), Target) = 0 Then
[/vba] вот он и ругался, не мог найти такой именованный диапазон.

Автор - Kamikadze_N
Дата добавления - 25.01.2017 в 20:28
bmv98rus Дата: Среда, 25.01.2017, 21:33 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4108
Репутация: 768 ±
Замечаний: 0% ±

Excel 2013/2016
Kamikadze_N,
Вот я и посмотрел на часть кода и не открывая файла , думал что вы ищете именно "DiapN" именованную область. на то и сослался.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеKamikadze_N,
Вот я и посмотрел на часть кода и не открывая файла , думал что вы ищете именно "DiapN" именованную область. на то и сослался.

Автор - bmv98rus
Дата добавления - 25.01.2017 в 21:33
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск макросом значения в именованном диапазоне (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!