Страницы: 1
RSS
Несколько значений, которые перебирает цикл For. Vba
 
Здравствуйте, есть код в котором цикл For перебирает значения, подскажите, пожалуйста, как циклу For задать несколько значений
Мой код:
Код
 For Stolb = 1 To name.Column
        With Cells(ActiveCell.Row + 1, Stolb)
        .Borders(xlEdgeTop).LineStyle = xlNone
        .Interior.Color = vbWhite
        End With
        Next

А нужно в For добавить еще один диапазон от 10 до 20, например. Действия в теле цикла будут выполняться те же.
Должно быть что-то вроде
Код
 For Stolb = 1 To name.Column, 10 to 20
 
Здравствуйте. Можно вложенные циклы (я, честно говоря, не очень понимаю задачу)
Код
For Stolb = 1 to name.Column
    For J = 1 to 10
     ...'тут код и нужные инструкции
    next J
Next Stolb
Кому решение нужно - тот пример и рисует.
 
можно
что за задачу пытаетесь решить?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Gogo Pav, здравствуйте
2 варианта
Изменено: Jack Famous - 20.10.2021 17:04:53
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Пытливый, здравствуйте, речь о том, что переменной stolb нужно присвоить разные значения: Stolb =1 To name.Column, 10 to 20.  
 
Эмнэ... а чего тогда последовательно 2 цикла - не подойдут? в первом перебираете от 1 до номера столбца, во втором от 10 до 20.
Кому решение нужно - тот пример и рисует.
 
Допустим, это нужно проделать с 1 по name.Column, с 10 по 20, с 99 по 222, с 315 по 399. Тогда:
Код
...
arr1 = Array(1, 10, 99, 315)
arr2 = Array(name.Column, 20, 222, 399)
For i = 1 To Ubound(arr1) + 1
    For Stolb = arr1(i - 1) To arr2(i - 1)
        With Cells(ActiveCell.Row + 1, Stolb)
            .Borders(xlEdgeTop).LineStyle = xlNone
            .Interior.Color = vbWhite
        End With
    Next
Next
...
Изменено: Бахтиёр - 20.10.2021 17:18:03
 
Цитата
Пытливый: а чего тогда последовательно 2 цикла - не подойдут?
полагаю, чтобы не писать в них одно и то же
В таком случае, конечно, напрашивается вынесение повторяющегося участка в отдельную процедуру, но, думаю, что для ТСа это может быть сложнее

Бахтиёр, прикольно!   ;)   :idea:
Только надо помнить, что при OptionBase 1 нижний индекс будет от 1, а не 0 и всё поедет (через LBound будет универсальнее, хотя, само-собой, нет никакого смысла делать суперуниверсальный, но совершенно нечитаемый при этом код  :D )
Изменено: Jack Famous - 20.10.2021 17:43:38
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Всем большое спасибо, Пытливый, Бахтиёр, Jack Famous!
Изменено: Gogo Pav - 21.10.2021 11:35:40
Страницы: 1
Наверх