Профессиональные приемы работы в Microsoft Excel

Пожалуйста, войдите или зарегистрируйтесь.


Расширенный поиск  

Новости:

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

Автор Тема: В границах ли именованного диапазона я?  (Прочитано 864 раз)

0 Пользователей и 1 Гость просматривают эту тему.

GWolf

  • Старожил
  • ****
  • Уважение: +50/-0
  • Оффлайн Оффлайн
  • Сообщений: 943

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

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

cheshiki1

  • Глобальный модератор
  • Ветеран
  • *****
  • Уважение: +92/-0
  • Оффлайн Оффлайн
  • Сообщений: 1 006

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

GWolf

  • Старожил
  • ****
  • Уважение: +50/-0
  • Оффлайн Оффлайн
  • Сообщений: 943

Спасибо огромное за быстрый ответ! Если не затруднит, подскажите, пожалуйста, как записать значение в ячейку именованного диапазона, ну, скажем E3 ?
« Последнее редактирование: 10.04.2015, 13:10:20 от vikttur »
Записан
Путей к вершине - множество. Этот один из многих!

kuklp

  • Глобальный модератор
  • Ветеран
  • *****
  • Уважение: +116/-5
  • Оффлайн Оффлайн
  • Сообщений: 1 012

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

cheshiki1

  • Глобальный модератор
  • Ветеран
  • *****
  • Уважение: +92/-0
  • Оффлайн Оффлайн
  • Сообщений: 1 006

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

_Boroda_

  • Глобальный модератор
  • Ветеран
  • *****
  • Уважение: +415/-0
  • Оффлайн Оффлайн
  • Сообщений: 2 556

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



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

GWolf

  • Старожил
  • ****
  • Уважение: +50/-0
  • Оффлайн Оффлайн
  • Сообщений: 943

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

GWolf

  • Старожил
  • ****
  • Уважение: +50/-0
  • Оффлайн Оффлайн
  • Сообщений: 943

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

_Boroda_

  • Глобальный модератор
  • Ветеран
  • *****
  • Уважение: +415/-0
  • Оффлайн Оффлайн
  • Сообщений: 2 556

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



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

GWolf

  • Старожил
  • ****
  • Уважение: +50/-0
  • Оффлайн Оффлайн
  • Сообщений: 943

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

GWolf

  • Старожил
  • ****
  • Уважение: +50/-0
  • Оффлайн Оффлайн
  • Сообщений: 943

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

exceleved

  • Постоялец
  • ***
  • Уважение: +15/-0
  • Оффлайн Оффлайн
  • Сообщений: 122

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



Темы без ответов

24.01.2020 14:03 На диаграмме Ганта несоответствие оси Y 1131
09.08.2019 14:09 Макрос для заполнения таблиц через форму 2879
18.07.2019 16:02 Рассылка почты из Excel при помощи почтовой программы TheBAT! 2496
09.07.2019 20:39 Кредит с уменьшением периода выплат 2593
28.05.2019 21:09 Сделать несколько скриптов для рабочей таблицы 3305
05.03.2019 17:00 Последовательный вывод таблиц Excel в один документ Word без шаблона 3198
05.03.2019 09:29 Нежелательные изменение размеров колонтитула при редактировании 2958
07.02.2019 01:36 Как удалить дубликаты из выпадающего связанного списка? 3121
20.01.2019 12:38 Все варианты частичного суммирования 3279
13.01.2019 12:24 Заполнение диапазона числами - в виде кластеров 2627





Яндекс цитирования msexcel.ru Яндекс.Метрика

Страница сгенерирована за 0.136 секунд. Запросов: 117.