Обращение к свойствам и методам элементов управления...

Программирование на Visual Basic for Applications
Rust
Новичок
Новичок
 
Сообщения: 42
Зарегистрирован: 01.02.2005 (Вт) 14:41

Обращение к свойствам и методам элементов управления...

Сообщение Rust » 18.06.2007 (Пн) 12:35

Здравствуйте!
Как добиться того, чтобы работал первый вариант?

1. i=1
UserForm1.Controls("CommandButton" & i).ForeColor = vbRed

2. UserForm1.CommandButton1.ForeColor = vbRed

Rust
Новичок
Новичок
 
Сообщения: 42
Зарегистрирован: 01.02.2005 (Вт) 14:41

Сообщение Rust » 18.06.2007 (Пн) 13:02

Забыл пояснить:
В приведённом примере первый вариант выдаёт ошибку,
а второй работает нормально.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 18.06.2007 (Пн) 13:03

Код: Выделить всё
    Dim ctl As Control
   
    Dim i As Long
    i = 1
   
    For Each ctl In UserForm1.Controls
        If ctl.Name = "CommandButton" & i Then
            ctl.ForeColor = vbRed
            Exit For
        End If
    Next ctl

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 18.06.2007 (Пн) 13:09

Вообще-то первый вариант и так должен работать.
Во всяком случае у меня он работает.

Посмотри, чему равно "CommandButton" & i ?
Lasciate ogni speranza, voi ch'entrate.

Rust
Новичок
Новичок
 
Сообщения: 42
Зарегистрирован: 01.02.2005 (Вт) 14:41

Сообщение Rust » 18.06.2007 (Пн) 13:10

Спасибо!

Rust
Новичок
Новичок
 
Сообщения: 42
Зарегистрирован: 01.02.2005 (Вт) 14:41

Сообщение Rust » 18.06.2007 (Пн) 13:14

Прошу прощения, поторопился.

For i = 1 To 41
If UserForm1.Controls("CommandButton" & i).Caption = CStr(D_Now) Then
UserForm1.Controls("CommandButton" & i).ForeColor = vbRed
Exit For
End If
Next i

Во второй строке кода забыл привести D_Now к строковому формату.


Вернуться в VBA

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

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

    TopList