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