Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2010, 13:26   #11
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Тогда не понимаю. У меня вот этот код
Код:
Sub Intersect_Name()
    Dim nn As Name
    For Each nn In ActiveWorkbook.Names
        If Mid$(nn, 2, InStr(nn, "!") - 2) = ActiveCell.Parent.Name Then
            If Not Intersect(Range(Mid$(nn, InStr(nn, "!") + 1)), ActiveCell) Is Nothing Then MsgBox nn.Name: Exit Sub
        End If
    Next
    MsgBox "Выделенная ячейка не входит ни в один именованный диапазон", vbInformation, "Hay_from_The_Prist"
End Sub
Нормально отрабатывает с таким именным диапазоном - =Отопление!$17:$20.
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 14.05.2010, 13:57   #12
kipish_lp
Форумчанин
 
Регистрация: 25.11.2009
Сообщений: 113
По умолчанию

А вот так работает! Спасибо!
kipish_lp вне форума Ответить с цитированием
Старый 14.05.2010, 14:01   #13
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Цитата:
Сообщение от kipish_lp Посмотреть сообщение
А вот так работает! Спасибо!
Так этот код практически ничем не отличается от того кода, который я привел в сообщении #7. Вы его пробовали?
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 14.05.2010, 19:33   #14
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

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

Код:
Sub Intersect_Name()
    Dim nn As Name, rRange As Range
    For Each nn In ActiveWorkbook.Names
        On Error Resume Next: Set rRange = Sheets(Range(nn.Name).Parent.Name).Range(nn.Name)
        On Error GoTo 0
        If Not rRange Is Nothing Then
            If rRange.Parent.Name = ActiveCell.Parent.Name Then
                If Not Intersect(rRange, ActiveCell) Is Nothing Then MsgBox nn.Name: Exit Sub
            End If
            Set rRange = Nothing
        End If
    Next
    MsgBox "Выделенная ячейка не входит ни в один именованный диапазон", vbInformation, "Hay_from_The_Prist"
End Sub
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 15.05.2010, 10:18   #15
kipish_lp
Форумчанин
 
Регистрация: 25.11.2009
Сообщений: 113
По умолчанию

Цитата:
Так этот код практически ничем не отличается от того кода, который я привел в сообщении #7. Вы его пробовали?
Пробовала, ошибка выводилась. Может из-за того, что в #7 nn был как объект?
Ваш последний код тоже замечательно работает. Спасибо!
kipish_lp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
определить тактовою частоту процессора и узнать название активной видеокарты и объём памяти SalasAndriy C++ Builder 7 14.04.2012 16:17
Как получить в VBA номера строк выделенного диапазона? Chelentano Microsoft Office Excel 10 04.11.2010 14:25
Как обозначить ячейку на одну правее от активной ячейки? ru3000 Microsoft Office Excel 4 28.07.2009 08:03
как наиболее просто получить название букв колонки для ячейки motorway Microsoft Office Excel 2 03.07.2009 04:52
Как определить номер строки верхней левой ячейки диапазона Porog Microsoft Office Excel 8 09.05.2008 08:37