Из ячейки в ComboBox, как?

Программирование на Visual Basic for Applications
JohneR
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 07.01.2006 (Сб) 16:45
Откуда: Сев-ск

Из ячейки в ComboBox, как?

Сообщение JohneR » 07.01.2006 (Сб) 16:59

Здравствуйте.
У меня вопрос следующего характера:
1. Имеется запущенный(!) макрос (он вызывает форму с элементами для ввода текста, например CobmoBox или TextBox).(форма не модальная)
2. Необходимо при возвращении к таблице Excel (форма не закрывается) и выделении любой ячейки занести её содержимое либо ComboBox либо в TextBox. Можно это сделать при 2ом нажатии мышки или правой кнопкой, но хотелось бы при выделении.

(примером может служить строка формул, которая заполняется при выделении ячейки).
Огромное спасибо за любые мысли!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 07.01.2006 (Сб) 17:03

RefEdit попробуй, что ли...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

JohneR
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 07.01.2006 (Сб) 16:45
Откуда: Сев-ск

Сообщение JohneR » 07.01.2006 (Сб) 18:42

Отличное решение! Спасибо. А ведь действительно:

"Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас" :idea:

JohneR
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 07.01.2006 (Сб) 16:45
Откуда: Сев-ск

Сообщение JohneR » 07.01.2006 (Сб) 19:50

Последовал попутный вопрос:

Выделяя ячейку, он передаёт её адрес, а как можно сделать, чтобы он передавал её значение?
Перехватить этот адрес не получается. Может как-то через RefEdit1_Change? Спасибо.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 07.01.2006 (Сб) 20:06

Код: Выделить всё
Private Sub RefEdit1_Change()
  Static foo As Boolean
 
  If Not foo Then
    foo = True
    RefEdit1.Value = Range(RefEdit1.Text).Value
    foo = False
  End If
End Sub
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

JohneR
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 07.01.2006 (Сб) 16:45
Откуда: Сев-ск

Сообщение JohneR » 07.01.2006 (Сб) 20:22

Ещё раз Спасибо.
Всё работает лучше, если написать так:

RefEdit1.Value = Range(RefEdit1.Value).Value

:wink:


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 86

    TopList