procedure to large?

Программирование на Visual Basic for Applications
fizik_leha
Обычный пользователь
Обычный пользователь
 
Сообщения: 76
Зарегистрирован: 02.09.2004 (Чт) 14:08

procedure to large?

Сообщение fizik_leha » 05.10.2004 (Вт) 10:58

Выскочило такое сообщение...
С этим можно бороться?
Ну кроме разбития процедуры на более мелкие конечно.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.10.2004 (Вт) 12:14

Можно.
Организовать код по-другому. Не в принципе разбиения, а в принципе логики...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

fizik_leha
Обычный пользователь
Обычный пользователь
 
Сообщения: 76
Зарегистрирован: 02.09.2004 (Чт) 14:08

Сообщение fizik_leha » 06.10.2004 (Ср) 15:58

А какой максимальный размер макроса в ВБА?

Sergo
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 07.05.2002 (Вт) 19:04

Сообщение Sergo » 11.10.2004 (Пн) 0:01

В продолжение темы у меня такая же беда
Хочу вынести повторяющиеся куски в подпроцедуры
Эти подпроцедуры будут работать с перменными из основного модуля и
с некоторыми переменными только внутри себя
в результате работы подпроцедуры появляется значение некой переменной
Все переменные описаны в основном модуле
Вопросы:
Какие переменные надо описывать в новой подпроцедуре?
При описании сохранят ли они значения из основного модуля?
Значение расчитанной в подпроцедуре переменной сохранится в основном модуле?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 11.10.2004 (Пн) 0:42

Sergo писал(а):Какие переменные надо описывать в новой подпроцедуре?

Те, которые не используются вне её.
Sergo писал(а):При описании сохранят ли они значения из основного модуля?

Нет, им нужно задавать значения явно.
Sergo писал(а):Значение расчитанной в подпроцедуре переменной сохранится в основном модуле?

Если оно будет присвоено переменной уровня модуля, то да.
Изображение

Sergo
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 07.05.2002 (Вт) 19:04

Сообщение Sergo » 11.10.2004 (Пн) 21:59

Если все переменные описать на уровне модуля.
то в подпроцедурах описывать ничего не надо
и все значения всех переменых сохраняться при входе в подпроцедуру и при выходе из неё
Я все правильно понял?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 11.10.2004 (Пн) 22:03

Да.
Но это "плохой стиль".
Изображение

Sergo
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 07.05.2002 (Вт) 19:04

Сообщение Sergo » 11.10.2004 (Пн) 22:09

А какой хороший?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 11.10.2004 (Пн) 22:29

Хороший - когда глобальных переменных нет, а функции обмениваются данными через принимаемые параметры и возвращаемые значения. Называется "процедурно-ориентированное программирование", впервые в полной мере реализовано Н.Виртом в Паскале.
Изображение

Sergo
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 07.05.2002 (Вт) 19:04

Сообщение Sergo » 11.10.2004 (Пн) 22:35

Но мне так проще
У меня уже есть глобальный модуль
а процедуры нужны только чтобы сократить текст

Sergo
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 07.05.2002 (Вт) 19:04

Сообщение Sergo » 11.10.2004 (Пн) 22:41

Спасибо за помощь


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 51

    TopList