|
Проблема 64. Хочется её увидеть изнутри.
|
|||
---|---|---|---|
#18+
Я не программист. Каждая строка кода даётся муками-нервами... Столкнулся с такой проблемой - EXCEL VBA, после частого использования при отладке моего макроса, вдруг выдаёт сообщение, что не хватает памяти. Стал читать - выяснил, что VBA может использовать только 64 кБ. кода. Видимо, при очередном запуске у меня не сбрасывается занятая память от предыдущего сеанса и происходит переполнение. Если это не сложно, может кто сделает макрос, который бы говорил остаток свободной памяти, во время загрузки макроса и после очередного запуска макроса? Это позволило бы анализировать код и искать возможность его оптимизировать (обнулять память переменных). На нет и суда нет. Всё равно - спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2012, 10:51 |
|
Проблема 64. Хочется её увидеть изнутри.
|
|||
---|---|---|---|
#18+
Вы немного неправильно поняли насчёт 64кБ но не суть... Скорее, у вас идет распределение памяти из кучи на объекты, которая не освобождаются после использования. Например, используете в процедурах Код: vbnet 1.
а надо, например, Код: vbnet 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2012, 14:23 |
|
Проблема 64. Хочется её увидеть изнутри.
|
|||
---|---|---|---|
#18+
где Код: vbnet 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2012, 14:56 |
|
Проблема 64. Хочется её увидеть изнутри.
|
|||
---|---|---|---|
#18+
Спасибо за ответы. Я объявляю переменную так: Dim Nomer_stroki as Long А потом вот так присваиваю ей значение из таблицы: Nomer_stroki = Worksheets("Чип").Range("G1").Value Про Nothing я прочитал. Стал её использовать для выгрузки формы в такой комбинации: Unload FORMA Set FORMA = Nothing Я правильно делаю? Или Nothing надо применять к КАЖДОЙ объявленной переменной? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2012, 15:32 |
|
Проблема 64. Хочется её увидеть изнутри.
|
|||
---|---|---|---|
#18+
Valll, нет Set FORMA = Nothing только после того когда создавали объект Set FORMA ..... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2012, 15:53 |
|
Проблема 64. Хочется её увидеть изнутри.
|
|||
---|---|---|---|
#18+
Прочитал в книге "Программирование на VBA 2003", что метод (или как его...) Unload полностью не освобождает память при выгрузке формы, а только Nothing. Я правильно понял, что если я ПРОГРАММНО не создаю форму, то и метод этот мне не поможет? Я формы создаю с помощью конструктора форм и из процедуры просто обращаюсь: FORMA.show или FORMA.text.value И на счёт объявления переменных и ссылок на ячейку я правильно делаю? Вот, кстати накопал ресур, может будет интересно: http://translate.google.ru/translate?hl=ru&sl=en&tl=ru&u=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fee814737.aspx&anno=2 Там приводятся несколько макросов по контролю быстродействия программ. Я освоил только один - скорость выполнения. С аглицким тяжело. Если будет желание - отпишитесь по их применению. Спасибо за дискуссию. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2012, 16:15 |
|
|
start [/forum/topic.php?fid=60&msg=37721954&tid=2157954]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
others: | 23ms |
total: | 144ms |
0 / 0 |