Как прикрепить к названию элемента формы переменную цикла?

Программирование на Visual Basic for Applications
MaDriver
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 31.05.2004 (Пн) 12:39

Как прикрепить к названию элемента формы переменную цикла?

Сообщение MaDriver » 18.09.2005 (Вс) 16:36

Как прикрепить к названию элемента формы переменную цикла, т.е. что-то типа этого: :roll:
for i=1 to q
Set source +[ i] = userform2.Controls.Add("Forms.refedit.1")
next
Может мне ктоньть подсказать? :?:
Лень - Двигатель прогресса!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 18.09.2005 (Вс) 18:35

source - это что у тебя?
Изображение

MaDriver
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 31.05.2004 (Пн) 12:39

Сообщение MaDriver » 19.09.2005 (Пн) 19:54

Source это название для элемента формы, т.е еще одна переменная, которых может быть несколько штук. :roll: Вобщем сначала: мне нужно с помощью цикла добавить в мою форму несколько refedit'ов (диапазонов), чтобы потом эти диапазоны использовать, и если они будут созданы с помощью циклов, я смогу потом их использовать по-порядку :lol: . Так вот в этом и проблема :( : можно ли назвать переменные с использованием порядкового номера цикла? :?
Лень - Двигатель прогресса!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 19.09.2005 (Пн) 19:57

Про массивы объяснять, или сам в MSDN найдёшь? ;-)
Изображение

Димитрий
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 26.01.2005 (Ср) 22:47
Откуда: Волгоград

Сообщение Димитрий » 19.09.2005 (Пн) 21:09

Посмотри пример, может подойдёт http://dimit.pochta.ru/wrem/combobox.zip

Ig
Обычный пользователь
Обычный пользователь
 
Сообщения: 73
Зарегистрирован: 30.04.2005 (Сб) 12:37
Откуда: Far East

Сообщение Ig » 20.09.2005 (Вт) 11:06

Если это как-то связано с предыдущим Вашим вопросом: :roll:
MaDriver писал(а):...Можно ли добавить нужное мне количество refedit'ов в форму, через цикл или еще как?...


То, имхо, проще сразу накидать на форму нужное кол-во этих контролов (можно даже один на другой) и оперировать свойством .Visible (true or false). 8)
"Нормальные герои всегда идут в обход..."

Maks the best
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 124
Зарегистрирован: 09.06.2005 (Чт) 12:34
Откуда: Санкт-Петербург

Сообщение Maks the best » 21.09.2005 (Ср) 11:43

MaDriver
...(source +[ i])...
а может тебе не [+] а [&] надо типо ...[source & i]... ?
или я чего то не понял ... :)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 21.09.2005 (Ср) 19:21

Maks, ему просто массив нужен.
Изображение

MeMBus
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 450
Зарегистрирован: 23.02.2005 (Ср) 7:03
Откуда: Из леса...

Сообщение MeMBus » 22.09.2005 (Чт) 4:23

Maks the best
А в чем разница между [+ i] и [& i]?
Бороться и искать, найти и перепрятать!

Al Khamid
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 274
Зарегистрирован: 11.02.2004 (Ср) 10:00
Откуда: Москва, Ховрино

Сообщение Al Khamid » 22.09.2005 (Чт) 8:37

+ -
Последний раз редактировалось Al Khamid 27.11.2007 (Вт) 0:55, всего редактировалось 1 раз.

Maks the best
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 124
Зарегистрирован: 09.06.2005 (Чт) 12:34
Откуда: Санкт-Петербург

Сообщение Maks the best » 22.09.2005 (Чт) 9:45

Во как :idea: ... :D

MaDriver
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 31.05.2004 (Пн) 12:39

Сообщение MaDriver » 25.09.2005 (Вс) 18:40

Спасибо всем за помощь, попробую все варианты, по-поводу "&", то я так и пробывал, только я так понял, что для переменной такой фокус применить нельзя для значения переменной пожалуйста, а с именем переменной нельзя :( . Ну ладно сделаю ченьть по-проще :wink:
Лень - Двигатель прогресса!

Maks the best
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 124
Зарегистрирован: 09.06.2005 (Чт) 12:34
Откуда: Санкт-Петербург

Сообщение Maks the best » 24.10.2005 (Пн) 13:57

подскажите пожалуйста!!!

уперся в такую же проблему.

у меня на форме 20 label'ov и кнопка нажималка. По кнопке идёт макрос в котором цикл циклится 20 раз.

Хочу чтобы эти лабелы выполняли роль прогресс бара и каждый шаг цикла i-й лабел окрашивался в синюшный цвет (ну там типо Label1.BackColor = &H80000002) а как мне вместо Label1.BackColor = &H80000002 в теле цикла написать Labeli.BackColor = &H80000002 ... ? :cry:

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 24.10.2005 (Пн) 14:17

Положить лабелы в массив.
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 24.10.2005 (Пн) 14:18

В VBA не поддерживается.

me.controls("label" & cstr(i)).backcolor
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Maks the best
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 124
Зарегистрирован: 09.06.2005 (Чт) 12:34
Откуда: Санкт-Петербург

Сообщение Maks the best » 24.10.2005 (Пн) 16:43

спасибо огромное :D

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 24.10.2005 (Пн) 19:12

GSerg писал(а):В VBA не поддерживается.

А нельзя один раз сделать
Код: Выделить всё
Dim Labels(20) As Label

For i = 1 To 20
    Set Labels(i) = Me.Controls("Label" & i)
Next

и дальше писать по-нормальному, как в VB?
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 24.10.2005 (Пн) 19:25

Мона.
Но не нуно.
Потому что после этого неибежно возникнет вопрос обработки событий этого массива с последующим разочарованием :)

Кроме того, был в моей жизни такой интересный опыт, при котором ControlX.Method вызывал крах экселя, в то время как Controls("Control" & cstr(X)).Method работало (для потенциально сомневающихся: это было на любых машинах с любой версией экселя). Баг экселя, но всё же :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 86

    TopList