Можно ли получить значение переменной модуля в форме?

Программирование на Visual Basic for Applications
proga
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 29.09.2004 (Ср) 13:04

Можно ли получить значение переменной модуля в форме?

Сообщение proga » 30.09.2004 (Чт) 6:57

В книге Excel есть три места где можно написать код: Microsoft Excel Objects, Forms и Modules. Доступ к переменным между модулями без проблем (Модуль.переменная), но для модуля переменные, к примеру, ЭтаКнига не существуют. Это в принципе невозможно (передача параметров через вызов процедуры не рассматривается)?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 30.09.2004 (Чт) 8:52

А Public/Private на что?
Lasciate ogni speranza, voi ch'entrate.

proga
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 29.09.2004 (Ср) 13:04

Сообщение proga » 30.09.2004 (Чт) 9:29

Это в случае описания внутри процедуры для всех процедур данного проекта (модуль1:sub1,sub2, ...). (Лист1 не видит переменных Листа2).

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 30.09.2004 (Чт) 10:20

Внутри процедур переменные по определению локальные. Если нужны общие переменные на уровне модуля/класса, то надо их объявлять как Private в секции Declaration модуля/класса. Если нужны общие переменные на уровне всего проекта, это либо Public/Global в Declaration модуля, либо Public в Declaration класса.
Lasciate ogni speranza, voi ch'entrate.

proga
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 29.09.2004 (Ср) 13:04

Сообщение proga » 30.09.2004 (Чт) 10:54

Все это сделано и нет эффекта. Может у тебя получится в Excel с Листа1 получить, скажем, константу a=10 в Листе2

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

Сообщение GSerg » 30.09.2004 (Чт) 13:40

Дык различать надо модули и модули класса. В модулях класса нельзя объявлять публичные константы. Можно, правда, объявить публичный enum с единственной константой (офис 2000 и выше).
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

san*
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 115
Зарегистрирован: 17.06.2004 (Чт) 17:57
Откуда: Киев

Сообщение san* » 30.09.2004 (Чт) 15:38

proga писал(а):Все это сделано и нет эффекта. Может у тебя получится в Excel с Листа1 получить, скажем, константу a=10 в Листе2

Можно объявить переменную с Public на уровне обычного модуля, а юзать её где надо. вроде проблем не должно быть.

proga
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 29.09.2004 (Ср) 13:04

Сообщение proga » 01.10.2004 (Пт) 6:04

Спасибо всем, разобрался, все работает. :D


Вернуться в VBA

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

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

    TopList  
cron