Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Вложенные циклы. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Вложенные циклы.
votangi59 Дата: Суббота, 25.01.2025, 20:17 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 36
Репутация: 0 ±
Замечаний: 0% ±

Здравствуйте.
Прошу помощи по вложенным циклам. В ниже приведённом куске кода в цикле с вложенным циклом ошибка "Next without For".
Не могу понять в чём дело, что не так. Помогите пожалуйста, буду весьма признателен.
[vba]
Код
  nBxO = box
Подтяг:
    Do While ldAll <= lidPR
        m = nBxO
        For m = box To 32
            k = m + 1
                Do While ZrBx(m) <= ZrBx(k)
                    KBx(m) = KBx(m) + 1
                    ZrBx(m) = ZBx(m) * KBx(m)
                        ldAll = ldAll + ld(m)
                        msAll = msAll + ms(m)
                        prAll = prAll + pr(m)
                    If ldAll > lidPR Then GoTo Вывод
                Loop
                    If m = 1 Then Exit For
                    If ZrBx(m) >= ZrBx(m - 1) Then
                        mPosl = ZrBx(m)
        For mPod = nBxO To 32
                If m <> 0 Then
                    Do While ZrBx(mPod) <= ZrBx(mPosl)
                        KBx(m) = KBx(m) + 1
                        ZrBx(m) = ZBx(m) * KBx(m)
                            ldAll = ldAll + ld(m)
                            msAll = msAll + ms(m)
                            prAll = prAll + pr(m)
                    If ldAll > lidPR Then GoTo Вывод
                Loop
                        End If
        Next mPod
        Next m
                        GoTo Подтяг
[/vba]
 
Ответить
СообщениеЗдравствуйте.
Прошу помощи по вложенным циклам. В ниже приведённом куске кода в цикле с вложенным циклом ошибка "Next without For".
Не могу понять в чём дело, что не так. Помогите пожалуйста, буду весьма признателен.
[vba]
Код
  nBxO = box
Подтяг:
    Do While ldAll <= lidPR
        m = nBxO
        For m = box To 32
            k = m + 1
                Do While ZrBx(m) <= ZrBx(k)
                    KBx(m) = KBx(m) + 1
                    ZrBx(m) = ZBx(m) * KBx(m)
                        ldAll = ldAll + ld(m)
                        msAll = msAll + ms(m)
                        prAll = prAll + pr(m)
                    If ldAll > lidPR Then GoTo Вывод
                Loop
                    If m = 1 Then Exit For
                    If ZrBx(m) >= ZrBx(m - 1) Then
                        mPosl = ZrBx(m)
        For mPod = nBxO To 32
                If m <> 0 Then
                    Do While ZrBx(mPod) <= ZrBx(mPosl)
                        KBx(m) = KBx(m) + 1
                        ZrBx(m) = ZBx(m) * KBx(m)
                            ldAll = ldAll + ld(m)
                            msAll = msAll + ms(m)
                            prAll = prAll + pr(m)
                    If ldAll > lidPR Then GoTo Вывод
                Loop
                        End If
        Next mPod
        Next m
                        GoTo Подтяг
[/vba]

Автор - votangi59
Дата добавления - 25.01.2025 в 20:17
Hugo Дата: Суббота, 25.01.2025, 20:48 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3745
Репутация: 797 ±
Замечаний: 0% ±

365
votangi59, без проверки - нужно строку
[vba]
Код
mPosl = ZrBx(m)
[/vba]
переместить в конец вышестоящей строки


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
Сообщениеvotangi59, без проверки - нужно строку
[vba]
Код
mPosl = ZrBx(m)
[/vba]
переместить в конец вышестоящей строки

Автор - Hugo
Дата добавления - 25.01.2025 в 20:48
votangi59 Дата: Воскресенье, 26.01.2025, 07:06 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 36
Репутация: 0 ±
Замечаний: 0% ±

Hugo, сработало!
Конечно же, многострочный If оставил без End If. Вы правы, здесь, лучше, в одну строку упаковать.
Огромная благодарность за помощь. Сижу днями за кодом, глаза, мозги замыливаются.
Теряется острота восприятия - ошибку не увидел,
Большое спасибо за науку.
Вопрос решён!

Hugo, может быть в этой теме поможете http://www.excelworld.ru/forum/10-54100-1


Сообщение отредактировал votangi59 - Воскресенье, 26.01.2025, 07:14
 
Ответить
СообщениеHugo, сработало!
Конечно же, многострочный If оставил без End If. Вы правы, здесь, лучше, в одну строку упаковать.
Огромная благодарность за помощь. Сижу днями за кодом, глаза, мозги замыливаются.
Теряется острота восприятия - ошибку не увидел,
Большое спасибо за науку.
Вопрос решён!

Hugo, может быть в этой теме поможете http://www.excelworld.ru/forum/10-54100-1

Автор - votangi59
Дата добавления - 26.01.2025 в 07:06
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!