Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Visual Basic Новый топик    Ответить
 VBA Выход из процедуры  [new]
Ant Sanders
Member

Откуда:
Сообщений: 8
Добрый день.

Почему происходит следующая ситуация:
Есть процедура, которая вызывает в себе другие процедуры:

Sub Main()
  Call RemoveByColor
  Call removeTbl1
End Sub


Я запускаю эту процедуру и пошагово прохожу.
Процедура RemoveByColor выполняется и переходит к процедуре removeTbl1, которая выглядит так:

Sub removeTbl1()
  If Range("Block1").Cells(1, 3) = 0 Then Range("Block1").Delete (xlUp)
End Sub


Условие выполняется, блок удаляется и после этого следующий шаг не переходит дальше к выполнению Main, а перескакивает к началу removeTbl1 и пытается пройти код заново.

Подскажите пожалуйста, в чем моя ошибка? Чем обусловлено такое поведение?
11 июл 19, 16:25    [21925074]     Ответить | Цитировать Сообщить модератору
 Re: VBA Выход из процедуры  [new]
vborets
Member

Откуда:
Сообщений: 158
Ant Sanders,

а где указывается лист на котором удаляете?
11 июл 19, 17:36    [21925133]     Ответить | Цитировать Сообщить модератору
 Re: VBA Выход из процедуры  [new]
Ant Sanders
Member

Откуда:
Сообщений: 8
vborets,

Не указываю, но дело в том, что блок удаляется верно, но почему то процедура зацикливается, в этом вся проблема
11 июл 19, 19:24    [21925217]     Ответить | Цитировать Сообщить модератору
 Re: VBA Выход из процедуры  [new]
Antonariy
Member

Откуда: ☭
Сообщений: 72919
Ant Sanders
Подскажите пожалуйста, в чем моя ошибка? Чем обусловлено такое поведение?
Единственный вариант, приходящий на ум, глядя на этот код, - removeTbl1 вызывается где-то еще из события, которое срабатывает при удалении строки.

Если оно больше ниоткуда не вызывается, только из Main, то нужно смотреть файл.
11 июл 19, 21:55    [21925280]     Ответить | Цитировать Сообщить модератору
 Re: VBA Выход из процедуры  [new]
Antonariy
Member

Откуда: ☭
Сообщений: 72919
vborets
Ant Sanders,

а где указывается лист на котором удаляете?
При неуказании листа действие применяется к активному листу.
11 июл 19, 21:56    [21925282]     Ответить | Цитировать Сообщить модератору
 Re: VBA Выход из процедуры  [new]
Ant Sanders
Member

Откуда:
Сообщений: 8
Antonariy,

удалось обнаружить, что это поведение вызвано условным форматированием. Как только я удаляю правило форматирования, процедура начинает работать нормально.
12 июл 19, 10:39    [21925518]     Ответить | Цитировать Сообщить модератору
Все форумы / Visual Basic Ответить