Страницы: 1
RSS
Как из строки ComboBox извлечь адрес ячейки, VBA
 
Доброго времени суток, Уважаемые.

Вопрос состоит в следующем.
Есть заполненный комбобокс. При на нажатии на любое значение нужно понимать адрес ячейки, информация из которой внесена в комбо.
Прошу помощи в решении данной задачи.
Изменено: Beginer_78 - 03.10.2019 15:13:08
 
Всем будет проще, если Вы потрудитесь подготовить простой пример, содержащий стоящую перед Вами проблему и желаемый результат...
 
В целом задача состоит в том, чтобы при выборе значения в комбо отражались соответствующие значения на форме. Те, последнее событие по определению не верное, но показывает суть задачи. Пытаюсь решить через извлечение адреса ячейки, соответствующей значению комбо. В связи с этим и вопрос, заданный выше.
 
Возможно у меня не совсем верно и вероятно нужно отлавливать ошибку на случай, если не найдётся значение (хотя оно точно должно найтись)
+ будет некорректно работать в случае дублирующихся объектов
Код
Private Sub CB_Object_Change()
Dim rngX As Range

Set rngX = Range("B1:B10").Find(CB_Object)

        Lb5.Caption = rngX.Offset(, 1)
        Lb6.Caption = rngX.Offset(, 2)


End Sub
Изменено: Wiss - 03.10.2019 15:58:57
Я не волшебник, я только учусь.
 
Работает. Но кроме первой строки таблицы. Ссылается на десятую строчку. Не понятно, почему.
 
Beginer_78, Можно сразу эту информацию писать в комбо, сделав эти поля нулевого размера, при выборе просто получить из значения что нужно.
По вопросам из тем форума, личку не читаю.
 
8)
"Все гениальное просто, а все простое гениально!!!"
 
Извините, имею малый опыт работы с Find. Не учёл нюансов. Вариант Nordheim, вероятно, лучше.
Код
Private Sub CB_Object_Change()
Dim rngX As Range

    If Range("B1").Value = CB_Object Then
        Set rngX = Range("B1")
    Else
        Set rngX = Range("B1:B10").Find(CB_Object, , , xlWhole)
    End If
    
    If Not rngX Is Nothing Then
        Lb5.Caption = rngX.Offset(, 1)
        Lb6.Caption = rngX.Offset(, 2)
    Else
        'что делать если не нашёл?! Вроде не может не найти
    End If
End Sub
Я не волшебник, я только учусь.
 
А вот это - реализация идеи БМВ. Я изначально хотел так сделать, но мог найти, как второй столбец скрыть. Хотя было же русским по белому написано
Цитата
БМВ написал:
сделав эти поля нулевого размера,
Я не волшебник, я только учусь.
 
Идея работает)
Страницы: 1
Наверх