Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как передать переменную с одного кода в другой? 
V
    Опции темы
Izuver
Дата 25.9.2006, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 352
Регистрация: 13.6.2006
Где: Омск

Репутация: 2
Всего: 2



К примеру:
Sub qw()
wq
y=x*10
End sub

Sub wq()
x=13
End sub

Как в qw задать x=13
PM MAIL ICQ   Вверх
Genyaa
Дата 25.9.2006, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Усердный
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 25.9.2006
Где: Москва

Репутация: 2
Всего: 11



Если я правильно понял вопрос... 
Код

Sub qw()
wq(x)
y=x*10
End sub

Sub wq(x)
x=13
End sub


А лучше объявить переменную явно:

Код

Sub qw()
Dim x as Integer
wq(x)
y=x*10
End sub

Sub wq(x as Integer)
x=13
End sub

--------------------
Всякое решение плодит новые проблемы.
PM WWW   Вверх
Akina
Дата 26.9.2006, 07:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



или сделать переменную глобальной - уровня модуля или уровня приложения.

Код

Dim x as Integer

Sub qw()
wq()
y=x*10
End sub

Sub wq()
x=13
End sub



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Izuver
Дата 26.9.2006, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 352
Регистрация: 13.6.2006
Где: Омск

Репутация: 2
Всего: 2



Хорошо все это для это примера, но если коды не одном модуле, а один в Module1\Sub qw(), а второй в UserForm1\Private Sub CommandButton1_Click()  и сам x это адресс, к примеру "C:\Program Files"?
PM MAIL ICQ   Вверх
Akina
Дата 27.9.2006, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Цитата(Izuver @  26.9.2006,  22:40 Найти цитируемый пост)
если коды не одном модуле, а один в Module1\Sub qw(), а второй в UserForm1\Private Sub CommandButton1_Click() 

Значит он должен быть описан строго в common-модуле (в данном случае это только Module1, если таковых нет - придется создать) как Publc

Код

Public x as Integer

Sub qw()
wq()
y=x*10
End sub

Sub wq()
x=13
End sub


Если это путь - то переменная соответственно должна быть строковая (или Variant, или юзерского типа с компонентом типа строка).


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Izuver
Дата 27.9.2006, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 352
Регистрация: 13.6.2006
Где: Омск

Репутация: 2
Всего: 2



Цитата(Akina @ 27.9.2006,  12:24)

Public x as Integer

Да, да, именно так я прочитал сегодня в книжке, только работает не при Public x As Integer, а при Public x As String, хотя разницы в них не смыслю.

Это сообщение отредактировал(а) Izuver - 27.9.2006, 22:29
PM MAIL ICQ   Вверх
Cyric
Дата 28.9.2006, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 27.4.2006
Где: Россия, г. Казань .

Репутация: 3
Всего: 3



Integer - целочисленная переменная, String - строковая.
Соответственно для значения 13 подойдёт первая переменная, для строки пути к папке - вторая.

Если проблемы с типами, то можете их не указывать, по-умолчанию переменные создаются типа Variant.


А вобще через глобальные переменные передавать всё что попало я считаю не правильно.

Если нужная вам переменная это результат выполнения какой-то функции, то логично сделать её выходным параметром.

Код

Sub qw()
y=wq() * 10
End sub

function wq() as Integer
wq=13
End function


Чтобы вызывать функции из других модулей они должны быть описаны как public и обращаться к ним нужно так: (название модуля).(имя переменной/функции)

Это сообщение отредактировал(а) Cyric - 28.9.2006, 11:45
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0486 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.