Я пытаюсь написать код, который будет искать строковое значение (которое я получу от пользователя) из таблицы, расположенной на другом листе моей рабочей книги.
Я пытался использовать функцию Range.Find
, а также Application.WorksheetFunction.Vlookup
.
Sub ID_Lookup()
Dim name As Variant
Dim FoundID As Range
Dim test_tbl As ListObject
Set test_tbl = Sheets("Sheet1").ListObjects("Full_List")
name = InputBox("Enter ID name:")
'Snippet used to find user input value above located in table from another sheet.
On Error Resume Next
FoundID = test_tbl.DataBodyRange.Find(name, LookAt:=xlWhole)
' FoundID = Application.WorksheetFunction.VLookup(name, test_tbl .DataBodyRange, 1, False)
On Error GoTo 0
End Sub
Хотя приведенная выше логика, кажется, хорошо работает для числовых значений, она возвращает ошибку (в случае Vlookup) и Null (в случае Range.Find) при попытке найти строковые значения.
Строковые значения, которые мне нужны для поиска, иногда представляют собой комбинацию букв, цифр и символа точки (например, AB.CDE2), и я попытался установить пользовательский ввод для типов данных String и Variant безрезультатно. Столбец, из которого я буду искать, также является текстовым («Общий» формат в Excel).
Любое направление будет полезным.