В границах ли именованного диапазона я?

Автор GWolf, 10.04.2015, 12:52

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

GWolf

Доброго дня, коллеги!
Прошу помощи в решении проблемы: Задан именованный диапазон в границах B2:E4 с именем "поле". Необходимо в макросе понять, что событие SheetBeforeDoubleClick в ячейке принадлежит последнему столбцу диапазона "поле".
Как это написать? Помогите, пожалуйста.

На скрепке заготовка.
Путей к вершине - множество. Этот один из многих!

cheshiki1

If Not Intersect(Target, Range("Поле")) Is Nothing Then MsgBox "Вы кликнули в именованном диапазоне -Поле-"

GWolf

#2
Спасибо огромное за быстрый ответ! Если не затруднит, подскажите, пожалуйста, как записать значение в ячейку именованного диапазона, ну, скажем E3 ?
Путей к вершине - множество. Этот один из многих!

kuklp

Range("Поле").Cells(2, 4).Select ' тут задаем смещение относительно первой ячейки им. диапазона
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

cheshiki1

или вам это нужно
If Not Intersect(Target, Range("Поле")) Is Nothing Then Cancel=True: Target=10-если ячейка принадлежит именованному диапазону Поле то пишем в ячейку по которой кликали 10.

_Boroda_

Цитата: GWolf от 10.04.2015, 12:52
событие SheetBeforeDoubleClick в ячейке принадлежит последнему столбцу диапазона "поле".
Если я правильно понял, то речь шла не о всем диапазоне, а именно о последнем столбце. Тогда
If Not Intersect(Target, WorksheetFunction.Index(Range("Поле"), 0, Range("Поле").Columns.Count)) Is Nothing Then MsgBox "Вы кликнули в последнем столбце диапазона -Поле-"
Скажи мне, кудесник, любимец ба'гов...



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

GWolf

Спасибо, огромное, друзья!
Пригодится оба примера. Т.к. с именованными диапазонами опыт только набираю.
Путей к вершине - множество. Этот один из многих!

GWolf

Цитата: _Boroda_ от 10.04.2015, 13:26
If Not Intersect(Target, WorksheetFunction.Index(Range("Поле"), 0, Range("Поле").Columns.Count)) Is Nothing Then MsgBox "Вы кликнули в последнем столбце диапазона -Поле-"
Прошу прощения, уважаемый _Boroda_! Не могли бы Вы объяснить данный листинг. Я не издеваюсь, я правда не понимаю.
Путей к вершине - множество. Этот один из многих!

_Boroda_

Массив - n:m
а - номер столбца - не больше m (для нашего случая а =  Range("Поле").Columns.Count) - количество столбцов поля = номер последнего столбца)
МММ = ИНДЕКС(Массив;0;а) даст нам ПОЛНЫЙ столбец под номером а из массива (посмотрите во вложенном файле на примере формулы)
Интерсектом проверяем вхождение Тарджета в МММ, если да, то выводим сообщение.
Скажи мне, кудесник, любимец ба'гов...



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

GWolf

Путей к вершине - множество. Этот один из многих!

GWolf

Что бы тема была законченой, на скрепке файлик.
Может кому то будет интересно.
Путей к вершине - множество. Этот один из многих!

exceleved

Более естественно использовать не WorksheetFunction.Index, а свойство диапазона Columns:    If Not Intersect(Target, Range("Поле").Columns(Range("Поле").Columns.Count)) Is Nothing Then