Новости:

К первому сообщению темы должен быть прикреплен файл примера в формате xls*.
Приложив пример, Вы избавите себя и других от вопросов типа "А какой критерий?", "А куда выводить результат?", "А сколько строк?" и все тех же просьб выложить файл. Рисовать за Вас Ваши же таблички с заданиями, а затем и решение к ним, никто желанием не горит. Да и, как показывает практика, в большинстве случаев без файла решения не найти.

Главное меню

Функция Intersect и именованный диапазон

Автор GWolf, 27.08.2018, 15:52

« назад - далее »

GWolf

Доброго всем времени суток!

Target - ячейка
Range("MatertialS") - именованный диапазон

Написал такой код:        If Not Intersect(Target, Range("MatertialS")) Is Nothing Then
            InputBox ""
        End If
, а он не работает. Выдает ошибку.
Может кто подскажет: чего не так? С именованными диапазонами только учусь еще работать.
Путей к вершине - множество. Этот один из многих!

boa

Добрый день,
Все правильно
а от куда вызываете?
например в модуле листа все работает
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        If Not Intersect(Target, Range("MatertialS")) Is Nothing Then
            InputBox ""
        End If
End Sub
Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра

_Boroda_

Именованный диапазон какой? Уровня книги или уровня листа?Это если Excel 2007 и больше.
И покажите в файле как имя считается.

И да, откуда вызывается макрос и на какой лист ссылается имя
Скажи мне, кудесник, любимец ба'гов...



Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995

GWolf

#3
Спасибо, друзья, за отклик.

Цитата: _Boroda_ от 27.08.2018, 16:25
И покажите в файле как имя считается.
вот это не понял  :'(


Excel 14.0.7212 MS Office 2010

Этот код Private Sub Worksheet_Change(ByVal Target As Range)
    Dim nR As Long, nC As Long, lLastRow As Long
   
    lLastRow = ActiveSheet.UsedRange.Rows.Count
   
    nR = Target.Row: nC = 5
    If Cells(nR, nC) <> "" And Cells(nR, nC + 2) = "" And nR < lLastRow - 9 Then
Application.EnableEvents = False
        Cells(nR, nC + 2) = "*"
Application.EnableEvents = True
        If Not Intersect(Target, Range("MatertialS")) Is Nothing Then
            InputBox ""
        End If
    ElseIf Cells(nR, nC) = "" And Cells(nR, nC + 2) <> "" And nR < lLastRow - 9 Then
Application.EnableEvents = False
        Cells(nR, nC + 2).Clear
Application.EnableEvents = True
    End If

    nR = 0: nC = 0: lLastRow = 0
End Sub

в модуле листа "L_Calc"

На скрепке файл проекта.
На второй скрепке - сообщение об ошибке. Ругается на эту строку: If Not Intersect(Target, Range("MatertialS")) Is Nothing Then
Путей к вершине - множество. Этот один из многих!

boa

Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра