|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.10.2010, 17:40 | #1 |
Форумчанин
Регистрация: 11.06.2010
Сообщений: 108
|
вечно живая переменная
сам не верю сказанному в заголовке, но почему-то у меня происходит следущее:
при каждом последующем запуске макроса вида Public i As Integer, ss As Integer Sub test() For i = 1 To 10 s Next End Sub Function s() Cells(1 + ss, 1) = "***" ss = ss + 1 End Function переменная "ss" начинает жить не с "0", а с последнего значения в предыдущем запуске. И "сбрасывается" только если в редакторе нажать Reset. Разве так бывает?
-Возьмите лучших их лучщих!
-Лучшие из лучших зализывают раны... -Тогда, возьмите лучших из худших! |
11.10.2010, 17:52 | #2 |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
Попробуйте обнулять её или чистить память.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
11.10.2010, 17:54 | #3 | |
Форумчанин
Регистрация: 07.03.2010
Сообщений: 796
|
Цитата:
у вас же она объявлена как публичная, закройте откройте файл и Ваша "Вечная" переменная умрет вот так ее можно похоронить заживо Public i As Integer, ss As Integer Sub test() ss = 0 For i = 1 To 10 s Next End Sub Function s() Cells(1 + ss, 1) = "***" ss = ss + 1 End Function
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
Последний раз редактировалось R Dmitry; 11.10.2010 в 17:59. |
|
12.10.2010, 09:24 | #4 | ||
Форумчанин
Регистрация: 11.06.2010
Сообщений: 108
|
Цитата:
Цитата:
именно на таком варианте я и остановился, это единственный путь? по поводу чистки памяти - наверное, вместе с "ss" из памяти удалятся и все остальные переменные, хранящиеся в ней, а такой вариант не подходит.
-Возьмите лучших их лучщих!
-Лучшие из лучших зализывают раны... -Тогда, возьмите лучших из худших! Последний раз редактировалось gsg; 12.10.2010 в 09:27. |
||
12.10.2010, 09:33 | #5 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Зачем эти переменные делаете публичными?
Объявляйте их одну в процедуре, другую в функции.
webmoney: E265281470651 Z422237915069 R418926282008
|
12.10.2010, 11:22 | #6 |
Форумчанин
Регистрация: 11.06.2010
Сообщений: 108
|
если объявлять ss в функции, то время ее существования ограничивается однократным выполнением функции. А необходимо, чтобы она сущствовала i циклов.
-Возьмите лучших их лучщих!
-Лучшие из лучших зализывают раны... -Тогда, возьмите лучших из худших! |
12.10.2010, 13:29 | #7 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Ну вот сами и ответили - по окончании циклов значит надо обнулять. Если бы сказали, что в начале циклов должна быть обнулена - значит обнулять надо в начале цикла
webmoney: E265281470651 Z422237915069 R418926282008
|
12.10.2010, 16:06 | #8 |
Форумчанин
Регистрация: 11.06.2010
Сообщений: 108
|
ок, будем обнулять
-Возьмите лучших их лучщих!
-Лучшие из лучших зализывают раны... -Тогда, возьмите лучших из худших! |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
C++ [Глобальная переменная] | Lemo | Помощь студентам | 2 | 26.10.2009 17:49 |
переменная в адресе | Shaggrath | Помощь студентам | 9 | 17.07.2009 21:05 |
Почему переменная а = 2??? | Paul_AG | Общие вопросы C/C++ | 2 | 25.05.2009 18:55 |
Переменная и Memo | ben95 | Общие вопросы Delphi | 2 | 18.04.2009 12:10 |
c# ссылочная переменная | hizahazahub | Общие вопросы .NET | 1 | 16.04.2009 20:53 |