Вы можете использовать функцию Find
.
Если значение найдено, вы можете вернуть Номер строки с Found.Row
и Индекс столбца с Count.Column
Private Sub ComboBox1_Change()
Dim Found As Range
Set Found = Sheet1.Range("A1:A99").Find(ComboBox1.Text, , xlValues, xlWhole)
If Found Is Nothing Then
'What do you want to do if your value in CommboBox is not found in the range?
Else
oHousing.Text = Sheet1.Cells(Found.Row, 2)
oMeal.Text = Sheet1.Cells(Found.Row, 3)
End If
End Sub
Если вы уверены, что значение ComboBox всегда будет в вашем диапазоне (возможно, вы систематически программировали значения ComboBox таким образом), вы можете пропустить проверку и просто использовать:
Dim Found As Range
Set Found = Sheet1.Range("A1:A99").Find(ComboBox1.Text, , xlValues, xlWhole)
oHousing.Text = Sheet1.Cells(Found.Row, 2)
oMeal.Text = Sheet1.Cells(Found.Row, 3)
Свойства Find
можно найти здесь . Если вы ищете текст, вам, возможно, придется различать чувствительность к регистру (для ваших нужд, THIS
= this
?). Применяемые в настоящее время свойства означают, что функция ищет значения (xlValues
), в частности, просматривает все значение ячейки (xlWhole
). I.E. (this value
не будет совпадать с this
)