Я попытался повторно использовать код для поиска значения на листе, но, похоже, что-то делаю не так. У меня есть Userform с текстовым полем под названием «KD_ID», в котором мне нужно получить данные, которые были помещены в него и искали на листе («Stammdaten») в Excel, а затем объединить некоторые ячейки рядом с ним в одну строку. (KD_RNG -> Global Variable)
Я использую этот код:
Private Sub KD_Search_Click()
Dim KD_Search As String
KD_Search = Packzettelinfo.KD_ID
Set KD_RNG = ThisWorkbook.Sheets("Stammdaten").Range("A:A").Find(KD_Search, , xlValues, xlWhole)
If Not KD_RNG Is Nothing Then
Customer_Combination.Value = KD_RNG.Offset(0, 1).Value & vbNewLine & KD_RNG.Offset(0, 2).Value & KD_RNG.Offset(0, 3).Value & vbNewLine & KD_RNG.Offset(0, 5).Value & vbNewLine & KD_RNG.Offset(0, 6).Value & KD_RNG.Offset(0, 7).Value
Else
MsgBox "Kundennummer konnte nicht gefunden werden (Fehler #002)"
Packzettelinfo.KD_ID.SetFocus
Exit Sub
End If
End Sub
Дело в том, что я ищу "PZ_ID" в другой подпрограмме (метка PZ-Nr. На скриншоте ниже ) и текстовое поле «KD_ID» (метка KD-Nr.) предварительно заполняется перед следующим поиском.
Итак, если я изменю «12345» на «23456»,
Customer_Combination.Value = KD_RNG.Offset(0, 1).Value & vbNewLine & KD_RNG.Offset(0, 2).Value & KD_RNG.Offset(0, 3).Value & vbNewLine & KD_RNG.Offset(0, 5).Value & vbNewLine & KD_RNG.Offset(0, 6).Value & KD_RNG.Offset(0, 7).Value
ничего не вернет, а KD_ID будет сброшен на «12345» ...