Страница: 1 |
Страница: 1 |
Вопрос: Обращение через массив
Добавлено: 02.05.07 10:33
Автор вопроса: Vovka | ICQ: 345650092
Добрый день!
Необходимо считать данные из Textbox1...Textbox50,
Каждый раз обращаться к Textbox1.Text неправильно,
Как это можно сделать через массив,
К примеру for i=1 to 50
Textbox.Text и т.д.
Подскажите как правильно это сделать.
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #1
Добавлено: 02.05.07 11:02
Можно сделать массив Textbox1
и в цикле обращаться
myArray(i) = Textbox1(i).text
к каждому, а можно - For Each...
Номер ответа: 2
Автор ответа:
ADSemenov.ru
Вопросов: 5
Ответов: 276
Web-сайт:
Профиль | | #2
Добавлено: 02.05.07 11:27
____ А разве в VBA есть массивы control'ов?
Номер ответа: 3
Автор ответа:
Vovka
ICQ: 345650092
Вопросов: 2
Ответов: 4
Профиль | | #3
Добавлено: 02.05.07 11:28
Что то не получается. помогите конкретным кодом.
К примеру если в текстбоксе нет записи , то запись равна нулю. И так надо пробежать все текст боксы. Напише код с использованием массива.
Это то немногое что я смог придумать))
Dim Textbox As String
Dim i As Integer
For i = 1 To 84
myArray(i) = Textbox(i)
If Textbox(i).Text = "" Then Textbox(i).Text = 0
Заранее спасибо.
Номер ответа: 4
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #4
Добавлено: 02.05.07 11:28
2 -АлександР-: Попался! У меня первый порыв точно также ответить был... но в VBA не создать массив контролов...
Номер ответа: 5
Автор ответа:
Vovka
ICQ: 345650092
Вопросов: 2
Ответов: 4
Профиль | | #5
Добавлено: 02.05.07 11:32
Значит нельзя, т.е. мне к каждому элементу обращаться надо помере надобности!!
Может есть какие альтернативы?
Номер ответа: 6
Автор ответа:
GenyaA
Вопросов: 0
Ответов: 185
Web-сайт:
Профиль | | #6
Добавлено: 02.05.07 11:55
Есть коллекция контролов.. к ней и можно обращаться, как к массиву... просто анализируя их имена.
Допустим tb() as Control
i = 0
For each cc in me.Controls
If Left(cc.Name,7) = "TextBox" Then
i = i + 1
Set tb(i) = cc 'или нужное_место(i) = cc.Value, если хотите сразу собрать значения textbox'ов.
end if
Next cc
После этого массив tb содержит все объекты контролов TextBox формы me, а i - их количество.
Далее можно уже собрать значения контролов в массиве в цикле... или можно собрать значения непосредственно в вышеприведенном цикле...
Номер ответа: 7
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #7
Добавлено: 02.05.07 17:05
Впрочем GenyaA достаточно подробно описал For Each, даже доабвить нечего
Номер ответа: 8
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #8
Добавлено: 10.05.07 02:26
да как так? Всегда есть что добавить, а ради +1 к ответам можно и по предираться, не то что добавить )) Вот смотри:
2 GenyaA
Поэтому правильнее писать стоит
)
Номер ответа: 9
Автор ответа:
Pavel
Вопросов: 0
Ответов: 82
Профиль | | #9
Добавлено: 10.05.07 12:35
Что-то у меня
не работает, но зато работает