Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Глобальные переменные / 11 сообщений из 11, страница 1 из 1
19.07.2005, 10:15:29
    #33172676
mihmih
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобальные переменные
Необходимо в проекте VBA (Excel) использовать глобальные переменные
(в модуле листа, форме, а также нескольких модулях проекта) где наиболее правильно их объявлять:
Public s As String ?
...
Рейтинг: 0 / 0
19.07.2005, 10:29:06
    #33172721
Глобальные переменные
В стандартном модуле.
...
Рейтинг: 0 / 0
26.07.2005, 15:22:38
    #33185141
mihmih
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобальные переменные
Надо не
Код: plaintext
Public a As string,
а
Код: plaintext
Global a As String
...
Рейтинг: 0 / 0
26.07.2005, 15:41:22
    #33185201
talgat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобальные переменные
Ясненько !?!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
28.03.2007, 13:01:38
    #34421319
kostic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобальные переменные
Переменная "рождается" в Worksheet_SelectionChange листа
как сделать её "видимой" в Worksheet_Change этого же листа ?
public и global выдают ошибку
спасибо
...
Рейтинг: 0 / 0
28.03.2007, 13:19:06
    #34421414
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобальные переменные
kosticПеременная "рождается" в Worksheet_SelectionChange листа
как сделать её "видимой" в Worksheet_Change этого же листа ?
public и global выдают ошибку
спасибо
все переменные, объявленные в модуле (в его области объявлений), видны для всех подпрограмм этого модуля.
если они объявлены через Public, то будут видны и из других модулей.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Option Explicit

Public a1 As Long   'видна из всех подпрограмм всех модулей
Private a2 As Long  'видна из всех подпрограмм только этого модуля

Sub test()
Dim a3 As Long      'видна только из этой подпрограммы
End Sub
...
Рейтинг: 0 / 0
28.03.2007, 14:06:20
    #34421633
kostic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобальные переменные
а вот почему так ?
пока не была задействована область Option Explicit все модули объекта
Worksheet работали без объявления переменных в команде Dim
а после того как объявили одну переменную в области Option Explicit
на каждой переменной стала выдаваться ошибка, что переменная не определена
Теперь придётся в dim объявлять все переменные, а их много
Наверное делаю что-то не так ...
...
Рейтинг: 0 / 0
28.03.2007, 14:09:50
    #34421651
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобальные переменные
kosticа вот почему так ?
пока не была задействована область Option Explicit все модули объекта
Worksheet работали без объявления переменных в команде Dim
а после того как объявили одну переменную в области Option Explicit
на каждой переменной стала выдаваться ошибка, что переменная не определена
Теперь придётся в dim объявлять все переменные, а их много
Наверное делаю что-то не так ...

Option Explicit
и есть команда, которая требует объявлять все переменные и не разрешает использовать необъявленные, может коряво объясняю, но смысл такой - удали эти два слова!
...
Рейтинг: 0 / 0
28.03.2007, 14:30:50
    #34421761
kostic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобальные переменные
Deggasad
Option Explicit
и есть команда, которая требует объявлять все переменные и не разрешает использовать необъявленные, может коряво объясняю, но смысл такой - удали эти два слова!
спасибо огромное, убрал, всё заработало как надо и переменную видно.

Только вот интересно, ни public ни private не использовали, написали просто
dim переменная as string в области general declaration и всё заработало
...
Рейтинг: 0 / 0
28.03.2007, 14:42:35
    #34421810
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобальные переменные
kostic Deggasad
Option Explicit
и есть команда, которая требует объявлять все переменные и не разрешает использовать необъявленные, может коряво объясняю, но смысл такой - удали эти два слова!
спасибо огромное, убрал, всё заработало как надо и переменную видно.
лучше не удалять Option Explicit, а объявить все переменные, иначе наступишь на грабли тем, где не ожидаешь


kosticТолько вот интересно, ни public ни private не использовали, написали просто
dim переменная as string в области general declaration и всё заработалопо умолчанию они там как Public, но опять же, лучше явно указывать видимость.
...
Рейтинг: 0 / 0
28.03.2007, 14:43:55
    #34421819
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глобальные переменные
Так и есть!
Я в этом сам не секу, но в верхней строчки до всех процедур и функций можно задекларровать общие переменные
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Глобальные переменные / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]