Excel VBA: поиск значения пользовательского ввода в другой таблице не выполняется для типов String / Variant - PullRequest
0 голосов
/ 07 июня 2019

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

Я пытался использовать функцию 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).

Любое направление будет полезным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...