|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
24.02.2009, 20:31 | #1 |
Форумчанин
Регистрация: 02.02.2009
Сообщений: 842
|
Глобальные переменные
В макросах я часто использую ряд одинаковых переменных, иногда приходиться проводить одни и те же объявления. Мне бы хотелось задать их значение один раз так что бы они были доступны для всех макросов, скажем запуске книги. Можно даже в виде констант.
Наивный вопрос: как это сделать?
С уважением, Алексей.
|
24.02.2009, 21:43 | #2 |
Пользователь
Регистрация: 09.01.2009
Сообщений: 44
|
Попробуйте к примеру так:
Public i As Integer |
24.02.2009, 21:49 | #3 |
Форумчанин
Регистрация: 02.02.2009
Сообщений: 842
|
С уважением, Алексей.
|
24.02.2009, 21:55 | #4 |
Пользователь
Регистрация: 09.01.2009
Сообщений: 44
|
Когда объявляете переменную
Например: Public ksbaza As Integer Public ksusf As Integer Public nn As Integer Dim i As Integer Private Sub UserForm_Initialize() Do Until Workbooks("Áàçà").Sheets("Áàçà").Ce lls(i, 1) = "" ksbaza = i i = i + 1 Loop i = 1 Do Until Workbooks("Áàçà").Sheets("Ó÷åò ñ÷åò-ôàêòóð").Cells(i, 2) = "" ksusf = i i = i + 1 Loop End Sub Sub l1() With UserForm28 For i = 1 To .ksbaza b = Workbooks("Áàçà").Sheets("Áàçà").Ce lls(i, 1) If a = b Then .Frame1.Controls("TextBox" & i1 + 1).Value = Workbooks("Áàçà").Sheets("Áàçà").Ce lls(i, 2) .Frame1.Controls("TextBox" & i1 + 2).Value = Workbooks("Áàçà").Sheets("Áàçà").Ce lls(i, 8) ... ... ... end sub В данном случаи переменные ksbaza и ksusf являются глобальными т.е. работать с ними можно при работе других макросов |
24.02.2009, 22:01 | #5 | |
Форумчанин
Регистрация: 02.02.2009
Сообщений: 842
|
Цитата:
С уважением, Алексей.
|
|
24.02.2009, 22:05 | #6 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Если это сделать на уровне модуля, т.е. не внутри функции или процедуры, а в самом верху, то переменные объявленные как Public, будут видны и в других модулях этой книги. Если же это сделать внутри функции, или процедуры, то такие переменные будут видны только внутри того модуля, где эта процедура находится.
Лучше день потерять — потом за пять минут долететь!©
|
24.02.2009, 22:07 | #7 |
Пользователь
Регистрация: 09.01.2009
Сообщений: 44
|
немножко не правильно, я их объявлял при запуску работы формы (либо макроса)
можно опопробывать и следующий вариант: К примеру в UserForme1 вы объявляете пепеменную a. Попробуйте использовать ее в других формах или макросах следуюштм образом, к примеру TextBox1.Value=UserForm1.a |
24.02.2009, 22:12 | #8 | |
Форумчанин
Регистрация: 02.02.2009
Сообщений: 842
|
Цитата:
1. Как обратиться к глобальной переменной из другой книги? 2. Как обратиться к глобальной переменной другого модуля? 3. При размещении глобальных переменных внутри макросов (читай для ограничения видимости переменной текущим модулем), как сделать так что бы этот макрос обязательно был выполнен первым в текущем модуле?
С уважением, Алексей.
|
|
24.02.2009, 22:23 | #9 | |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Цитата:
Лучше день потерять — потом за пять минут долететь!©
|
|
28.02.2009, 10:18 | #10 |
Форумчанин
Регистрация: 02.02.2009
Сообщений: 842
|
А как задать начальные значения для этих переменных?
С уважением, Алексей.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Переменные скрипта | wall66 | PHP | 7 | 12.12.2008 17:14 |
Переменные REAL | Terabit | Паскаль, Turbo Pascal, PascalABC.NET | 9 | 03.11.2008 21:26 |
Глобальные хуки | Zeraim | Win Api | 2 | 24.05.2008 16:00 |
Переменные из БД | Кронос | БД в Delphi | 2 | 06.06.2007 11:26 |