Этот код выглядит так, как это делает Шрёдингер. Если я открою проект и запустил код, я не получу никаких ошибок. Если я просмотрю код для редактирования или добавления чего-либо, при первом запуске кода я получаю «Ошибка времени выполнения 91». Если я попытаюсь запустить его второй раз, не внося никаких изменений, я получаю «Ошибка времени выполнения 429» (компонент ActiveX не может создать объект).Ошибка выполнения 91 и 429
Я пытаюсь найти строку (BuildSel) в диапазоне на листе (Ref), который имеет то же значение, что и выбранное в списке пользовательской формы (BuildList). Затем, как только строка найдена, чтобы взять данные из этой строки и столбцов A и B, и поместить их в текстовые поля на мою пользовательскую форму. Является ли мой код правильным и ActiveX делает ошибку? Я тоже извиняюсь за ужасную кодировку.
EDIT: список находится на многостраничном в моей пользовательской форме. Я впервые заметил проблему сегодня, когда попытался добавить еще один список на другой странице.
Private Sub BuildList_Click()
Dim Ref As Worksheet, BuildSel As Long
Set Ref = ThisWorkbook.Sheets("Ref")
BuildSel = Ref.Range("B2", Ref.Range("B" & Rows.Count).End(xlUp)).Find(BuildList.Value, lookat:=xlPart).Row
BuilderText.Value = Ref.Range("A" & BuildSel).Value
CompNameText.Value = Ref.Range("B" & BuildSel).Value
End Sub
BuildSel неправильно определен. Он должен сказать: «Dim BuildSel As Variant» Я бы поставил это как ответ на свой вопрос, но поскольку я не могу объяснить, почему это исправило проблему, и я не хочу, чтобы мой код был хорошим примером правильного код, я поставлю его здесь как комментарий. Я оставлю вопрос до модераторов, чтобы решить, будет ли это полезно другим или нет. – Tyeler