Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 21.03.2014
Сообщений: 2
1

Excel, куда сохранять данные между обработчиками?

21.03.2014, 12:29. Показов 644. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имею минимальный опыт ОО программирования. Программирование не является основной моей профессией. Сейчас начал осваивать VBA под Excel.

Собственно, вопрос:
Создал на листе Combo Box.
Обработчик события Workbook_Open должен собирать по листу некую информацию и где-то её сохранять. Это должна быть коллекция объектов. Назовём её collA.
Далее по совершению соответствующего события, обработчик ComboBox1_Change должен выбирать из collA согласно выбора пользователя определённый

Добавлено через 11 минут
прошу прощения, нажал не на ту кнопку случайно, соответственно, продолжение:


Далее по совершению соответствующего события, обработчик должен выбирать из collA согласно выбора пользователя определённый объект и обрабатывать содержащиеся в нём данные.

Вопрос заключается в следующем: где/как collA следует создавать в обработчике Workbook_Open чтобы она была видна в ComboBox1_Change?

Где-то нашёл информацию, что в список Combo Box можно добавлять не только String'и, но и любые другие объекты, главное чтобы в них был метод ToString определён. Пробовал пойти по этому пути, но не сработало — при попытке добавления такого объекта
.ComboBox1.AddItem myitem
, где myitem — это объект, у которого определён метод ToString, компилятор выдаёт ошибку несоответствия типов.

Ещё можно было бы попробовать обойтись без объектов вообще и посоздавать глобальных переменных, но в школе меня учили, что глобальные переменные есть дурной тон, по этому хотелось бы обойтись без них.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.03.2014, 12:29
Ответы с готовыми решениями:

Куда сохранять данные (без БД)
В каком виде лучше сохранять/обрабатывать данные работы небольшой программы, не используя бд....

Куда лучше всего сохранять данные (числовые и текстовые)
Здравствуйте! Подскажите пожалуйста, куда лучше всего сохранять данные (числовые и текстовые). К...

Обмен данными между обработчиками событий
Здравствуйте, подскажите. Есть два обработчика события (Click on Button) private void...

В чём разница между обработчиками нажатий RecyclerView через OnItemTouchListener и в адаптере?
Доброго дня. Существуют два способа написания обработчика кликов по элементам RecyclerView. Оба...

3
15145 / 6418 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
21.03.2014, 12:37 2
В переменные уровня модуля. Чтобы они не были глобальными, объявите их Private.

Добавлено через 2 минуты
VBA это VB6, тут нет метода ToString, а есть функция Cstr, но чаще всего компилятор сам проводит нужные преобразования типов.
0
0 / 0 / 0
Регистрация: 21.03.2014
Сообщений: 2
21.03.2014, 14:09  [ТС] 3
Цитата Сообщение от Казанский Посмотреть сообщение
В переменные уровня модуля. Чтобы они не были глобальными, объявите их Private.
Создал модуль (обычный, а не классовый) Module1
в нём объявил переменную
Visual Basic
1
Dim myColl As Collection
в обработчике Workbook_Open создал объект myColl и накидал в него объектов:
Visual Basic
1
2
3
4
5
6
7
8
Set myColl = New Collection
 
For Each cl In rng
 
     ...   
 
     myColl.Add myitem
Next cl
в обработчике ComboBox1_Change пытаюсь обратиться к myColl
Visual Basic
1
For Each myitem In myColl
компилятор ругается на эту строку и сообщает "Run-time error '424' Object required"
0
15145 / 6418 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
21.03.2014, 14:32 4
Visual Basic
1
Public myColl As Collection
1
21.03.2014, 14:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.03.2014, 14:32
Помогаю со студенческими работами здесь

Подскажите куда сохранять код
Всем привет подскажите пожалуйста.Установил Денвер.чтоб протестировать скачал вот такой код <html>...

Куда сохранять введенные параметры?
Приветствую Всех! Помогите пожайлуста. Проблема следующая: Есть форма, на ней два поля Edit, и две...

куда сохранять изображения после ресайза
Пользователь загружает изображение, при этом создаются несколько копий данной картинки с разными...

CHM: Куда сохранять настройки из JavaScript?
Доброго времени суток! В силу того, что я не занимаюсь веб-программированием, а задача...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru