Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Загромаждение Листинга

12K
08 мая 2006 года
arseen
23 / / 04.05.2006
P( Возможно ли задать выполнение следуйщих действий одной командой посредствам присвоения им определенной метки дабы исключить Загромаждение листинга кодами постоянно повторяющихся дйствий?

:roll: :

If FrmSecond.Text1.Text = 1 Then
If FrmSecond.Text2.Text = 10 Then
Text1.Visible = True
Text2.Visible = True
Text3.Visible = True
Text4.Visible = True
Text5.Visible = True
Text6.Visible = True
Text7.Visible = True
Text8.Visible = True
Text9.Visible = True
Text10.Visible = True
TxSir1.Visible = True
TxProd1.Visible = True
TxProd2.Visible = True
TxProd3.Visible = True
TxProd4.Visible = True
TxProd5.Visible = True
TxProd6.Visible = True
TxProd7.Visible = True
TxProd8.Visible = True
TxProd9.Visible = True
TxProd10.Visible = True
End If
End If
13K
09 мая 2006 года
dimon7k
18 / / 02.03.2006
Цитата:
Originally posted by arseen
P( Возможно ли задать выполнение следуйщих действий одной командой посредствам присвоения им определенной метки дабы исключить Загромаждение листинга кодами постоянно повторяющихся дйствий?

:roll: :

If FrmSecond.Text1.Text = 1 Then
If FrmSecond.Text2.Text = 10 Then
Text1.Visible = True
Text2.Visible = True
Text3.Visible = True
Text4.Visible = True
Text5.Visible = True
.........................
End If
End If



Да.

Для этого все перечисленные текстовые поля на стадии проектирования формы должны быть занесены в массив элементов в котором они будут различаться индексами.

После этого вы сможете обращаться к каждому текстовому полю/группе полей по его/их уникальному индексу; групповые действия с полями можно осуществлять в цикле.

Формирование массива элеменотов:

1. создайте на форме 1-е текстовое поле; назовите его, скажем, VseTxtPolja
2. скопируйте указанное текстовое поле в буфер обмена
3. вставте скопированное поле в текущую форму; при этом IDE VB запросит у вас разрешение создать массив элементов управления (в данном случае - текстовых полей)
4. ответьте утвердительно на заданный вопрос, кликнув OK в соответствующем диалоговом окне
5. подобным образом внесите в форму необходимое количество текстовых полей
6. теперь у вас сфорирован массив текстовых полей с именем VseTxtPolja индекса которых изменяются от нуля до n-1, де n - число текстовых полей в массиве управления
7. теперь в соответств. процедуре вы можете обратиться к этим полям через их индекса, например таким образом:

For i = 0 To n-1
VseTxtPolja(i).Enabled = True
Next

(т.е. все текстовые поля массива VseTxtPolja с индексами от нуля до n-1 станут доступными)

12K
09 мая 2006 года
arseen
23 / / 04.05.2006
;) Огромное спосибо за несоразмерную помощь (ох, теперь одни размеры в голове :)

Однако у меня возник ворос: можно ли произвести дополнительные сокращения если используется несколько интервалов.....?


If FrmSecond.Text2.Text = 1 Then
For i = 1 To 9
Text1(i).Visible = False
Next
For i = 11 To 19
Text1(i).Visible = False
Next
For i = 21 To 29
Text1(i).Visible = False
Next
For i = 31 To 39
Text1(i).Visible = False
Next
For i = 41 To 49
Text1(i).Visible = False
Next
For i = 51 To 59
Text1(i).Visible = False
Next
For i = 61 To 69
Text1(i).Visible = False
Next
For i = 71 To 79
Text1(i).Visible = False
Next
For i = 81 To 89
Text1(i).Visible = False
Next
For i = 91 To 99
Text1(i).Visible = False
Next


Нужен неполный интервал от 0 до 100 (исключая индексы i = 0,10,20,30,40,50,60,70,80,90,при которым Text1(i).Visible = True) ....P( )

Пришлось разбить на 10 интервальчиков)....,что тоже грамоздить листинг (((( подсобите чем Могите
P(
12K
09 мая 2006 года
arseen
23 / / 04.05.2006
:)Письмо обитателям лучшего форума в рунете :)

Вопросы все НАЗРЕВАЮТ и НАЗРЕВАЮТ ......
;)Где Вы, любители садово-огородных участков????
;)Где Вы, агрономы-косметологи ????
;)Где Вы, садовники и садовничихи ????
;)Где Вы, програмисты и программерки????
пока все ето художество надумывал чуть вопрос не забыл :( P(
Вопрос:
Как соответствующему элементу text1(i) указать соответствующую ячейку в книге Excel ??? P(
:roll:
242
09 мая 2006 года
Оlga
2.2K / / 04.02.2006
Цитата:
Originally posted by arseen
;) Огромное спосибо за несоразмерную помощь (ох, теперь одни размеры в голове :)

Однако у меня возник ворос: можно ли произвести дополнительные сокращения если используется несколько интервалов.....?


.........................

Нужен неполный интервал от 0 до 100 (исключая индексы i = 0,10,20,30,40,50,60,70,80,90,при которым Text1(i).Visible = True) ....P( )

Пришлось разбить на 10 интервальчиков)....,что тоже грамоздить листинг (((( подсобите чем Могите
P(


сделай if

 
Код:
For i = 0 To 99
If i mod 10 <> 0 then
Text1(i).Visible = False
End If
Next
12K
09 мая 2006 года
arseen
23 / / 04.05.2006
Спасибо, а если имеется нечто следующее P( :

Dim iXLApp As Object, iXLWb As Object
iFullName$ = "C:\Excel\1.xls"


If Text1(0).Text <> "" Then
If Dir(iFullName$) <> "" Then
Set iXLApp = CreateObject("Excel.Application")
Set iXLWb = iXLApp.Workbooks.Open(FileName:=iFullName$)
iXLWb.Worksheets("Лист1").Range("B1").Value = Text1(0).Text
iXLWb.Close saveChanges:=True
iXLApp.Quit
Set iXLWb = Nothing
Set iXLApp = Nothing
End If
Text1(0).Text = ""
End If

как сделать что бы For i=0 To 99
Tetxt1(i) равнялся A1,A2,A3,A4.....?
или A1,B2,C2,D2 (Здесь наверное другая реализаци т.к. в латинице буковок не хватает пойдут AA1 и т.п.) P( P( P( :roll: :roll:
275
10 мая 2006 года
pashulka
985 / / 19.09.2004
 
Код:
For iCount% = 0 To 99
    Text(iCount%).Text = _
    iXLWb.Worksheets("Лист1"). _
    Range("A1").Offset(iCount%).Value
Next
12K
10 мая 2006 года
arseen
23 / / 04.05.2006
:) Спасибо в очередной раз.... признателен до глубины души))):roll:

;) Слава Пашульке, Сдава !!! ;)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог