Трабл со сменой значений переменных

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Apokal
Сообщения: 81
Зарегистрирован: 14 янв 2008, 19:02

Здраствуйте. Есть небольшой трабл в следуещем маленьком коде:

Код: Выделить всё

For Counter = 1 To NumberLabsModule3
        [I]Range(Cells(X_Anchor_Field1, Y_Anchor_Field1), Cells((X_Anchor_Field1 + 2), (Y_Anchor_Field1 + 2))).Select[/I]
        With Selection
            .Merge
            .FormulaR1C1 = (" Виконання та захист лабораторної роботи № 1." + Str(Counter))
        End With
        [B]X_Anchor_Field1 = X_Anchor_Field1 + 1[/B]
        [B]Y_Anchor_Field1 = Y_Anchor_Field1 - 4[/B]
    Next Counter
В общем кидает ошибку "Run-time error '1004': Application-defined or object-defined error" и указывает на строчку выделеную курсивом, если закоментить строчки выделеные жирным то все норм, но мне нада както изменить значение этих переменных в цыкле. Подскажите плз в чем может быть трабл?
For Those Who About The Rock We Salute You!!!
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

По видимому начальное значение Y_Anchor_Field1 у Вас слишком мало, тогда как NumberLabsModule3 слишком велико. Например, при
X_Anchor_Field1 = 15
Y_Anchor_Field1 = 14
Все отработает нормально при NumberLabsModule3 <= 4, а на 5 итерауии значение Y_Anchor_Field1 станет отрицательным и неизбежно приведет к указанной Вами ошибке.

Попробуйте погонять этот цикл под отладчиком с контролем переменной Y_Anchor_Field1, и Вы в этом убедитесь.
Apokal
Сообщения: 81
Зарегистрирован: 14 янв 2008, 19:02

Пасиба. Как я сам незаметил( тупо как-то вышло такой пустяк.
For Those Who About The Rock We Salute You!!!
Ответить