#excel #vba
#excel #vba
Вопрос:
У меня есть фиктивная пользовательская форма данных, в которой я хочу использовать значение поля со списком для поиска в других полях на странице.
Итак, у меня есть две кнопки выбора на случай, если пользователь не знает идентификатор сотрудника, которого он ищет. если пользователь нажимает name
, то поле со списком заполняется как name - employee id
и наоборот.
Несмотря на это, моим значением поиска всегда должен быть этот идентификатор сотрудника.
итак, я пытаюсь использовать функцию mid, чтобы выполнить мгновенный поиск других текстовых полей на странице формы пользователя.
Private Sub cmbEmployee_Change()
On Error Resume Next
Dim strID
x = cmbEmployee 'combo box in picture up above
If optName = True Then
strID = Mid(x, InStr(x, " - ") 1)
Else
strID = Mid(x, InStr(x, " - ") - 1)
End If
txtName.Value = Application.VLookup(CLng(strID), _
Worksheets("masterws").Range("A:B"), 2, False)
txtmgrID = Application.VLookup(CLng(strID), _
Worksheets("masterws").Range("A:C"), 3, False)
txtmgrName = Application.VLookup(CLng(strID), _
Worksheets("masterws").Range("A:D"), 4, False)
txtReq = Application.VLookup(CLng(strID), _
Worksheets("masterws").Range("A:E"), 5, False)
txtLocation = Application.VLookup(CLng(strID), _
Worksheets("masterws").Range("A:F"), 6, False)
End Sub
есть идеи, почему поисковые запросы не заполняются? Возможно ли это вообще?
Комментарии:
1. Сначала избавьтесь от этого
On Error Resume Next
.2. @BigBen получение несоответствия типов в
cLng
части, потому что оно неправильно извлекаетemployee id
. Как я мог бы пересмотреть среднюю функцию сверху, чтобы убедиться, что я извлекаю только число, а не что-либо еще?3. Но похоже, что не всегда будет
employee id
так, что вы не можете слепо использоватьCLng
здесь, верно? Кроме того, если вы используетеDebug.Print Mid(x, InStr(x, " - ") 1)
, вы увидите, что результат- 44444
, другими словами,1
делает не то, что вы думаете.4. @BigBen всегда будет идентификатор сотрудника, но он будет либо слева, либо справа, в зависимости от того, какая кнопка выбора выбрана пользователем.
5. @BigBen использовал функцию разделения, и теперь она отлично работает. спасибо за предложение по обработке ошибок