Я новичок в VBA и создаю электронную таблицу CRM для небольшой компании. У меня есть лист с именами компаний / клиентов, и я пытаюсь извлечь их контактную информацию из другого листа и показать ее во всплывающей форме пользователя.
Моя пользовательская форма перечисляет индивидуальную контактную информацию с текстовыми полями, поэтому я использую функции .Find / FindNext для их заполнения. Но FindNext продолжает переходить к началу, заставляя пользовательскую форму снова показывать те же имена.
Как мне остановить .FindNext от переноса без использования цикла?
Я пытался поместить это в цикл Do-Loop, но это, кажется, помещает его в бесконечный цикл или что-то в этом роде и останавливает Excel. Я также попробовал формулу LastRow без удачи.
Sub UserForm_Activate()
Dim fSearch As Range 'the column we are searching in
Dim fFind As Range 'the value we are searching for
Dim LastRow As Long
Set fSearch = Sheets("Contact List").Range("Company_Find")
'First Find
Set fFind = fSearch.Find(What:=Selection.Value)
Debug.Print
Txt_Contact1 = fFind.Offset(0, 5)
Txt_Title1 = fFind.Offset(0, -1)
Txt_Email1 = fFind.Offset(0, 1)
Txt_Office1 = fFind.Offset(0, 2)
Txt_Mobile1 = fFind.Offset(0, 3)
'Second Find
Set fFind = fSearch.FindNext(fFind)
Debug.Print
Txt_Contact2 = fFind.Offset(0, 5)
Txt_Title2 = fFind.Offset(0, -1)
Txt_Email2 = fFind.Offset(0, 1)
Txt_Office2 = fFind.Offset(0, 2)
Txt_Mobile2 = fFind.Offset(0, 3)
'Third Find
Set fFind = fSearch.FindNext(fFind)
Debug.Print
Txt_Contact3 = fFind.Offset(0, 5)
Txt_Title3 = fFind.Offset(0, -1)
Txt_Email3 = fFind.Offset(0, 1)
Txt_Office3 = fFind.Offset(0, 2)
Txt_Mobile3 = fFind.Offset(0, 3)
'Fourth Find
'Fifth Find
End Sub