Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Обнуление всех переменных. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Обнуление всех переменных. (Макросы/Sub)
Обнуление всех переменных.
akobir Дата: Среда, 06.05.2015, 11:24 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 201
Репутация: 9 ±
Замечаний: 0% ±

Excel 2010
Добрый день!

Проблема следующая:
Есть цикл, который обрабатывает несколько документов.
В цикле используется множество переменных.
Как (и можно ли) сделать так, чтобы при переходе от документа к документу все переменные обнулялись?


e-mail: akobir.ismailov@gmail.com
 
Ответить
СообщениеДобрый день!

Проблема следующая:
Есть цикл, который обрабатывает несколько документов.
В цикле используется множество переменных.
Как (и можно ли) сделать так, чтобы при переходе от документа к документу все переменные обнулялись?

Автор - akobir
Дата добавления - 06.05.2015 в 11:24
Manyasha Дата: Среда, 06.05.2015, 11:31 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
akobir, здравствуйте. Как вариант, запихать обработку файла в отдельную UDF, и в цикле вызывать эту функцию с нужными параметрами.


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеakobir, здравствуйте. Как вариант, запихать обработку файла в отдельную UDF, и в цикле вызывать эту функцию с нужными параметрами.

Автор - Manyasha
Дата добавления - 06.05.2015 в 11:31
akobir Дата: Среда, 06.05.2015, 11:46 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 201
Репутация: 9 ±
Замечаний: 0% ±

Excel 2010
Manyasha, Думал об этом. :) Надеялся, что есть вариант проще...
[moder]Есть. Посмотреть макрос.


e-mail: akobir.ismailov@gmail.com

Сообщение отредактировал _Boroda_ - Среда, 06.05.2015, 11:52
 
Ответить
СообщениеManyasha, Думал об этом. :) Надеялся, что есть вариант проще...
[moder]Есть. Посмотреть макрос.

Автор - akobir
Дата добавления - 06.05.2015 в 11:46
AndreTM Дата: Среда, 06.05.2015, 13:41 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
Надеялся, что есть вариант проще...
Дописать три строчки кода, сделать два копипаста... Куда проще-то уж? :D


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщение
Надеялся, что есть вариант проще...
Дописать три строчки кода, сделать два копипаста... Куда проще-то уж? :D

Автор - AndreTM
Дата добавления - 06.05.2015 в 13:41
Hugo Дата: Среда, 06.05.2015, 14:52 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
А какие проблемы обнулить переменные? Или проблема в том, что это множество нужно обнулять вручную индивидуально (в коде каждую прописать)? Так ведь один раз прописали уже где-то - можно использовать копипаст.
Или можно подойти кардинально - использовать одну переменную-массив. Только в индексах не запутайтесь.
Типа
[vba]
Код
Sub test()
     Dim a(1 To 10) As Double
     a(3) = 25.5
     a(5) = 36.6
     MsgBox a(3) & " - " & a(5)
     Erase a
     MsgBox a(3) & " - " & a(5)
End Sub
[/vba]


excel@nxt.ru
webmoney: E265281470651 Z422237915069


Сообщение отредактировал Hugo - Среда, 06.05.2015, 14:55
 
Ответить
СообщениеА какие проблемы обнулить переменные? Или проблема в том, что это множество нужно обнулять вручную индивидуально (в коде каждую прописать)? Так ведь один раз прописали уже где-то - можно использовать копипаст.
Или можно подойти кардинально - использовать одну переменную-массив. Только в индексах не запутайтесь.
Типа
[vba]
Код
Sub test()
     Dim a(1 To 10) As Double
     a(3) = 25.5
     a(5) = 36.6
     MsgBox a(3) & " - " & a(5)
     Erase a
     MsgBox a(3) & " - " & a(5)
End Sub
[/vba]

Автор - Hugo
Дата добавления - 06.05.2015 в 14:52
RAN Дата: Среда, 06.05.2015, 15:01 | Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
А зачем вообще обнулять?
Инициализировать в начале цикла. Что, скорее всего, и происходит. За все время пришлось, может, пару раз обнулять отдельно.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеА зачем вообще обнулять?
Инициализировать в начале цикла. Что, скорее всего, и происходит. За все время пришлось, может, пару раз обнулять отдельно.

Автор - RAN
Дата добавления - 06.05.2015 в 15:01
krosav4ig Дата: Среда, 06.05.2015, 17:14 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Или можно подойти кардинально

Вкл-Выкл режима конструктора, шоб наверняка
[p.s.]Этнияоносамо


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
Или можно подойти кардинально

Вкл-Выкл режима конструктора, шоб наверняка
[p.s.]Этнияоносамо

Автор - krosav4ig
Дата добавления - 06.05.2015 в 17:14
vladimir-shagaliev Дата: Среда, 06.05.2015, 20:16 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
[moder]Здесь этого не нужно писать. Удалил. Вы можете создать тему в свободном общении - это ветка форума такая.


Сообщение отредактировал _Boroda_ - Среда, 06.05.2015, 20:46
 
Ответить
Сообщение[moder]Здесь этого не нужно писать. Удалил. Вы можете создать тему в свободном общении - это ветка форума такая.

Автор - vladimir-shagaliev
Дата добавления - 06.05.2015 в 20:16
akobir Дата: Четверг, 07.05.2015, 13:59 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 201
Репутация: 9 ±
Замечаний: 0% ±

Excel 2010
Прошу администрацию сильно не пинать - но код приложить не могу - политика конфиденциальности. Заменять значения - реально очень долго.
Отвечаю на вопрос зачем обнулять:
Есть n-количество магазинов, которые обрабатываются. Все используют одинаковую отчетность, из которых, соответственно берутся данные.
Отчет формируется за каждый день.
Я, используя переменные и цикл считаю значения по столбцам для каждого магазина.
Далее это значение вставляю в сводный отчет и перехожу к следующему магазину.
Соответственно, чтобы переменные не продолжали складывать значения - необходимо обнулить.
Возможно, все это можно было прописать проще - но я не эксперт. :)

Как решил проблему:
Задал public-переменные в модуле и там же написал процедуру обнуления переменных.
После обработки каждого магазина вызывается процедура обнуления, после этого переход к следующему.


e-mail: akobir.ismailov@gmail.com
 
Ответить
СообщениеПрошу администрацию сильно не пинать - но код приложить не могу - политика конфиденциальности. Заменять значения - реально очень долго.
Отвечаю на вопрос зачем обнулять:
Есть n-количество магазинов, которые обрабатываются. Все используют одинаковую отчетность, из которых, соответственно берутся данные.
Отчет формируется за каждый день.
Я, используя переменные и цикл считаю значения по столбцам для каждого магазина.
Далее это значение вставляю в сводный отчет и перехожу к следующему магазину.
Соответственно, чтобы переменные не продолжали складывать значения - необходимо обнулить.
Возможно, все это можно было прописать проще - но я не эксперт. :)

Как решил проблему:
Задал public-переменные в модуле и там же написал процедуру обнуления переменных.
После обработки каждого магазина вызывается процедура обнуления, после этого переход к следующему.

Автор - akobir
Дата добавления - 07.05.2015 в 13:59
Саня Дата: Пятница, 08.05.2015, 11:46 | Сообщение № 10
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
Как (и можно ли) сделать так, чтобы при переходе от документа к документу все переменные обнулялись?


в качестве развлечения, видимо...
[vba]
Код
sub s1()
   ' здесь код

   ' "вызываем" след. процедуру
   application.ontime now+timeserial(0,0,2),"s2"
   end
end sub

sub s2()
   '...
end sub
[/vba]
 
Ответить
Сообщение
Как (и можно ли) сделать так, чтобы при переходе от документа к документу все переменные обнулялись?


в качестве развлечения, видимо...
[vba]
Код
sub s1()
   ' здесь код

   ' "вызываем" след. процедуру
   application.ontime now+timeserial(0,0,2),"s2"
   end
end sub

sub s2()
   '...
end sub
[/vba]

Автор - Саня
Дата добавления - 08.05.2015 в 11:46
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Обнуление всех переменных. (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!