Есть такой кусок кода, который заполняет ListBox, находящийся на форме, определенными данными:
Находится он в модуле. Для того, чтобы содержимое модуля получало доступ к элементам формы, необходимо дать ссылку на эту форму в самом коде. Проблема в том, что при попытке его выполнения программа не может определить, к чему относится элемент в 10-й строке (.TextBox.Value). Она воспринимает текстовое поле как метод ListBox и естественно вываливается с ошибкой. Есть ли какой-то, ммм... аккуратный вариант записи для подобных ссылок? Или придется для таких "неопознаваемых" элементов принудительно приписывать префикс?
| Код |
|---|
Sub Main() Dim i As Integer Dim j As Integer i = 0 With MainUserForm With .ListBox If .TextBox.Value = "" Then .Clear Else: For Each Item In ItemsRange For Each Number In NumbersRange If Item = Number Then .AddItem For j = 1 To .ColumnCount .List(i, j - 1) = Item.Offset(0, j - 5) Next .List(i, 4) = Item i = i + 1 j = j + 1 End If Next Next End If End With End With End Sub |
Находится он в модуле. Для того, чтобы содержимое модуля получало доступ к элементам формы, необходимо дать ссылку на эту форму в самом коде. Проблема в том, что при попытке его выполнения программа не может определить, к чему относится элемент в 10-й строке (.TextBox.Value). Она воспринимает текстовое поле как метод ListBox и естественно вываливается с ошибкой. Есть ли какой-то, ммм... аккуратный вариант записи для подобных ссылок? Или придется для таких "неопознаваемых" элементов принудительно приписывать префикс?
| Код |
|---|
MainUserForm.TextBox.Value |
Изменено: - 01.07.2019 19:16:54


