Страницы: 1
RSS
VBA excel приостановка выполнения кода до выделения ячейки
 
Подскажите пожалуйста как в VBA excel приостановить выполнение кода и ждать выделения одной ячейки.
Необходимо что бы при нажатии созданной кнопки на листе excel выводилась надпись  "выделите левую верхнюю ячейку" и система ждала выделения одной ячейки (один клик левой копки мыши на нужной ячейки) и после чего переменным а и б (к примеру) соответственно присваивался номер строки и столбца.
Пример:
1. Нажали созданную кнопку на листе excel увидели надпись "выделите левую верхнюю ячейку"
2. Нажали один раз левой кнопки мыши на нужной ячейки листа excel, к примеру на ячейку "С12"
3. Получили переменную а равную 12 (12 строка) и переменную б равную 3 (так как С это третий столбец) и продолжение работы программы.
Заранее благодарен
Изменено: vikttur - 06.10.2021 22:35:33
 
А если выделят ячейку, но не ту, что нужно?
 
Код
Sub Test()
    Dim Rng As Range
    On Error Resume Next
    Set Rng = Application.InputBox("Выделите левую верхнюю ячейку", "Выделите ячейку", Type:=8)
    On Error GoTo 0
    If Rng Is Nothing Then
        MsgBox "Вы не выбрали ячейку!", vbExclamation, "Ошибка"
        Exit Sub
    End If
    MsgBox "Человек выбрал ячейку: " & Rng.Address(0, 0), vbInformation, ""
End Sub
 
New, код с ошибкой - если за клавиатурой обезьяна? :)
 
Цитата
vikttur написал:
если за клавиатурой обезьяна
вопрос спорный, у меня такие примеры есть что эти приматы - профессора.
По вопросам из тем форума, личку не читаю.
 
Сергей Иванов,  у Вас два вопроса в одной теме, что не соответствует правилам форума. Но поскольку старожилы посчитали Вашу тему заслуживающей внимания, внесу и свою лепту:)
1.Первый и главный Ваш вопрос в теме - приостановка выполнения кода.
Если макрос уже запущен, он просто обязан отработать, несмотря ни на какие кнопки (если внутри него не прописана возможность остановки).
Либо его нужно разбить на два или более макросов, которые будут запускаться по отдельности.
2.Получить адрес ячейки можно другим макросом (в частности привязать на событие выделения ячейки в модуле листа (или макросом, привязанным к кнопке получить адрес активной ячейки и т.п. и т.д.)
3.Значение полученной переменной можно либо записать в ячейку (или ячейки) либо как Вы хотите в переменные, и после этого запускать следующий макрос - т.е. оставшуюся часть программы.
БМВ, , добрый, вечер! Полностью с Вами согласен. Лингвист (филолог, историк, биолог, ботаник - подставить нужное) не обязан владеть языками программирования, равно как и программист не обязан владеть 50-ю разговорными иностранными языками или помнить процентное содержание химических элементов в низколегированных сталях :)
 
Цитата
Сергей Иванов написал:
при нажатии созданной кнопки на листе excel выводилась надпись  "выделите левую верхнюю ячейку"
Все это уже давно придумано - надо просто в нужном месте кода добавить вызов диалогового окна: Диалог выбора диапазона Application.InputBox
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
_Igor_61 написал:
Лингвист (филолог, историк, биолог, ботаник - подставить нужное) не обязан владеть языками программирования
Правильно ли я понимаю, что организованные в ВУЗах обязательное изучение основ программирования для этих специальностей сделано просто для повышения зарплаты преподавателям, а так просто нафиг не кому не нужно? :)
 
off
Андрей VG,  думаю это они зря, а вот то что специалист должен быть сейчас уверенным пользователем ПК, который не встает в ступор при малейшем отступлении от алгоритма который ему показали (тыч сюда , сюда, а потом сюда) . Мог открыть встроенную справку как минимум и прочесть её, а не мне некогда я там ничего  не понимаю сделайте чтоб  .... ,
Просто из наболевшего: подчиненный мой приходит к одному из босов. "Скопируйте мне на ноутбук на рабочий стол в папку отдельную несколько файлов с сетевого диска."  Я б наверно Сюрфейм бы об пол разбил и сказал "не нужнО оно вам , ненужнО."
По вопросам из тем форума, личку не читаю.
 
offtop
Цитата
БМВ написал:
думаю это они зря
Привет, Михаил.
А вот работодатели считают иначе. Предельное высказывание на эту тему ГОГа - век программистов закончился :)
Изменено: Андрей VG - 07.10.2021 10:22:47
 
Цитата
Андрей VG написал:
ВУЗах обязательное изучение основ программирования
да абсолютно бесполезный предмет, даже вредный, с моей точки зрения, так как отпугивает от компьютера
и это касается не только ВУЗов но и школьной программы по информатике
"основы компьютерной грамотности" а не программирование, вот что нужно преподавать,
обьяснить что такое файлы и их типы, для чего нужна файловая система, проводник, познакомить с текстовым, графическим и возможно табличным редактором, немного рассказать об интернете.
программирование нужно тем, кто решил связать свою жизнь с этим направлением человеческой деятельности

в теме много людей отметилось. автора только нету))
Изменено: Ігор Гончаренко - 07.10.2021 10:35:10
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко написал:
"основы компьютерной грамотности" а не программирование, вот что нужно преподавать
Это я и попытался сказать в #6, только другими словами. Приношу извинения за неясно сформулированную мысль :)
Цитата
Андрей VG написал:
А вот работодатели считают иначе
Думаю, что это их временные проблемы, главное чтобы это поняли не слишком поздно :)
Страницы: 1
Наверх