Новый для VBA.В течение двух дней я искал ответ, но не нашел вопрос, который действительно спрашивает, на что я хочу получить ответ.
Я работаю с пользовательской формой, которая заполняет таблицу на одном из моих листов.
Мойпроблема в сабе UserForm_Initialize()
.Первое, что я пытаюсь сделать, это выяснить, содержит ли моя последняя строка (и, кстати, первый столбец) в моем DataBodyRange указанной таблицы идентификационный номер.
Если это так, то я беру это значение, добавляю его и заполняю текстовое поле внутри своей пользовательской формы.
Если, однако, таблица состоит из заголовков и одной пустой строки, я хочу заполнить TextBox номером 1 (который через другую подпрограмму будет добавлен в эту пустую строку), но мой код перестает работать сошибка.
С помощью следующего кода я получаю ошибку
Ошибка времени выполнения '91': переменная объекта или переменная блока не установлена
Private Sub UserForm_Initialize()
Dim tbl As ListObject, rng As Range
Set tbl = Worksheets("Sheet1").ListObjects("table1")
Set rng = tbl.ListColumns("ID").DataBodyRange
If IsEmpty(rng.Cells.Find("*", LookIn:=xlValues,_
SearchOrder:=xlByRows,_
SearchDirection:=xlPrevious).Value) Then
Me.textBox.Value = 1
Else
Me.textBox.Value = rng.Cells.Find("*", LookIn:=xlValues,_
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Value + 1
End If
End Sub
Я не понимаю объяснения, которые я нахожу относительно кода ошибки или как ее исправить.Я понимаю, что ошибка связана с rng.Cells.Find...
, потому что именно тогда ошибка появляется при пошаговом выполнении кода, но я могу на всю жизнь не понять, почему.