|
|
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
Здрасти всем. Нужна помощь в след. вопросе: у меня в экселе 250 checkbox'ов и надо сделать цикл такого вида: for i=1 to 250 checkbox i . visible=false next i Проблема заключается в том, что система не понимает, что такое checkbox i. Помогите плиззз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 11:24 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
массив контролей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 11:39 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
Дело в том, что мой ник не случайно Почти Лузер. Объясните по подробнее и желательно с примером пжалста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 11:48 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
Дело в том, что мой ник не случайно Почти Лузер. Объясните по подробнее и желательно с примером пжалста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 11:49 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
Почти ЛузерДело в том, что мой ник не случайно Почти Лузер. Объясните по подробнее и желательно с примером пжалста Хоть один честный. Это похвально, но тогда фоту надо было выставить Ладно, к делу. Прежде чем помощи просить надо показать свой пример. Я понял так, что ты умудрился вставить в книгу или лист 250 чекбоксов! эта работа похвальна... для почти лузера...но сделать можно было проще создать массив контролов: помещаешь один чек и его свойство Индекс делаешь равным хотя бы 0 потом надо создать процедуру вывода 249 оставшихся чексов и тогда общаться с ними в твоей проце, но немного её изменив for i=1 to 250 let checkbox( i).visible=false next i Надеюсь понятно, а если нет, поищи "массивы контролов" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 12:17 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
Ден ПрограммёрЭто похвально, но тогда фоту надо было выставитьАхтунг? PS: По делу. Дело происходит в экселе, а он не поддерживает массивы контролов. Нужно юзать, если мне ни с кем не изменяет память, коллекцию Shapes. Поиск даст больше, эта тема не раз обсуждалась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 12:24 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
не знаю как в екселе, попробуй сам преобразовать. в простом бейсике этоо делается так: 1. НЕ программный способ создаётся первый чекбокс в свойстве Index пишется первое значение ( у нас - 1) создаётся второй чекбокс в свойстве Index пишется второе значение ( у нас - 2) и так оставшиеся 248 раз код: Код: plaintext 1. 2. 3. создаётся ОДИН чекбокс в свойстве Index пишется первое значение ( у нас - 1) код для открытия формы Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Дальше - как обычно (пишешь где надо): Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 12:29 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
пока я писакал выяснилось, что массивов то нетути в екселе :) сорри ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 12:31 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
Насколько я понял речь идет о VBA? Там нет массива чекбоксов, как и любого контрола кажется (точно за все не помню). А выход - коллекция контролов. Примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 12:31 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
да, если чёт непонятно, Лузер, тогда гугли "VB коллекция" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 12:34 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
Только вот непонятно. 250 чекбоксов!!! Я бы это принял за психическую атаку и немедленно бы удалил этот файл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 12:49 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
AndreyMp...Я бы это принял за психическую атаку... ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 12:59 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
AndreyMpТолько вот непонятно. 250 чекбоксов!!! Я бы это принял за психическую атаку и немедленно бы удалил этот файл. Да на самом деле это просто эл. тест. Кроме этого обнаружил, что в свойсвах чекбоксов не индекса, поэтому ничего не получается, можа есть какие еще варианты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 13:46 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
Для особо одаренных и наблюдательных повторяю еще раз: AntonariyДело происходит в экселе, а он не поддерживает массивы контролов. Нужно юзать, если мне ни с кем не изменяет память, коллекцию Shapes (если они на листе) . Поиск даст больше, эта тема не раз обсуждалась.Если на форме, коллекцию Controls. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 13:55 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
Почти Лузер, если речь об элементах управления, внедрённых в рабочий лист, то код может выглядеть так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 14:18 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
Ну а если на форму, то я чуть ранее писал. Проверил, работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 14:45 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
БенедиктПочти Лузер, если речь об элементах управления, внедрённых в рабочий лист, то код может выглядеть так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Я бы использовал цикл без жестко заданного количества чекбоксов. Я бы также убрал Set o = Nothing, Set oOLEObjs = Nothing, поскольку это излишне: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 16:04 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
Кстати, к сожалению, код Бенедикта не будет работать, если давать индивидуальные имена чекбоксам, что часто ожидается в обычной практике кодирования. Как вариант для любых OLE objects на листе: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 16:15 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
Даже короче: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 16:17 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
VladConn, 1) В общем случае надо либо список имён элементов управления хранить, либо как-то признаки принадлежности группе, требующей обработки, им навешивать. Но это [пока для меня] выглядит усложнением задачи (ещё не понятно, правильно ли понятой). 2) Я предпочитаю сравнивать тип через TypeOf ... Is ...: TypeOf o.Object Is MSForms.Checkbox. 3) Set ... = Nothing я бы не убирал. Из педагогических соображений :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 16:35 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
Да, конечно. Группы, тэги и т.п. - ясное дело. Для этого я и использовал ProgID, чтобы указать на такую проблему. Насчет педагогических соображений. Как раз я бы убирал, т.к. это демонстрирует понимание манипулирования памятью в VB6 и раз и навсегда ставит крест на мифах и легендах о Set ... Nothing. Еще раз о последнем. Я хочу сказать, что использование в данном контексте Set ... Nothing на самом деле ни плохо, ни хорошо. Это чисто вопрос стиля. Тут на самом деле нет смысла спорить. Я сам много лет так делал. Стиль есть стиль. Важно только понимать, что делать это необязательно. Успехов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 16:51 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
VladConnДа, конечно. Группы, тэги и т.п. - ясное дело. Для этого я и использовал ProgID, чтобы указать на такую проблему. Насчет педагогических соображений. Как раз я бы убирал, т.к. это демонстрирует понимание манипулирования памятью в VB6 и раз и навсегда ставит крест на мифах и легендах о Set ... Nothing. Еще раз о последнем. Я хочу сказать, что использование в данном контексте Set ... Nothing на самом деле ни плохо, ни хорошо. Это чисто вопрос стиля. Тут на самом деле нет смысла спорить. Я сам много лет так делал. Стиль есть стиль. Важно только понимать, что делать это необязательно. Успехов А мона вопрос, а если set ...=Nothing'ом я "обнуляю" ненужные в данный момент рекордсеты, это хорошо или плохо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 17:06 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
Если черeз несколько линий кода его исполнение перейдет в другой блок, где ваш рекордсет, видимый только в своем блоке, уже все равно невидим, то можно обойтись без Set ... Nothing. Он умрет и без вашей помощи. Вот в аварийном завершении процедуры я бы предусмотрел Set ... Nothing. Если возникла ошибка, то мне лично будет трудно сказать, что там произойдет с памятью. Т.е.: On error goto MethodError ..... .... MethodError: If Err.Number <> 0 then .... Set ... Nothing end if ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 17:18 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
VladConnЕсли черeз несколько линий кода его исполнение перейдет в другой блок, где ваш рекордсет, видимый только в своем блоке, уже все равно невидим, то можно обойтись без Set ... Nothing. Он умрет и без вашей помощи. Вот в аварийном завершении процедуры я бы предусмотрел Set ... Nothing. Если возникла ошибка, то мне лично будет трудно сказать, что там произойдет с памятью. Т.е.: On error goto MethodError ..... .... MethodError: If Err.Number <> 0 then .... Set ... Nothing end if Мало что понял!!! У меня несколько глобальных (на уровне формы) рекордсетов. И для экономии памяти и неуменьшения быстродействия операций, если данные из одного рекорда не нужны в данный момент я его обнуляю, и заполняю и работаю с другим, который нужен именно сейчас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 17:27 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=34629386&tid=2163772]: |
0ms |
get settings: |
5ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
159ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
75ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 481ms |

| 0 / 0 |
