powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Глобальные переменные
11 сообщений из 11, страница 1 из 1
Глобальные переменные
    #33172676
mihmih
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Необходимо в проекте VBA (Excel) использовать глобальные переменные
(в модуле листа, форме, а также нескольких модулях проекта) где наиболее правильно их объявлять:
Public s As String ?
...
Рейтинг: 0 / 0
Глобальные переменные
    #33172721
В стандартном модуле.
...
Рейтинг: 0 / 0
Глобальные переменные
    #33185141
mihmih
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо не
Код: plaintext
Public a As string,
а
Код: plaintext
Global a As String
...
Рейтинг: 0 / 0
Глобальные переменные
    #33185201
Фотография talgat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ясненько !?!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Глобальные переменные
    #34421319
kostic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переменная "рождается" в Worksheet_SelectionChange листа
как сделать её "видимой" в Worksheet_Change этого же листа ?
public и global выдают ошибку
спасибо
...
Рейтинг: 0 / 0
Глобальные переменные
    #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
Глобальные переменные
    #34421633
kostic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вот почему так ?
пока не была задействована область Option Explicit все модули объекта
Worksheet работали без объявления переменных в команде Dim
а после того как объявили одну переменную в области Option Explicit
на каждой переменной стала выдаваться ошибка, что переменная не определена
Теперь придётся в dim объявлять все переменные, а их много
Наверное делаю что-то не так ...
...
Рейтинг: 0 / 0
Глобальные переменные
    #34421651
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kosticа вот почему так ?
пока не была задействована область Option Explicit все модули объекта
Worksheet работали без объявления переменных в команде Dim
а после того как объявили одну переменную в области Option Explicit
на каждой переменной стала выдаваться ошибка, что переменная не определена
Теперь придётся в dim объявлять все переменные, а их много
Наверное делаю что-то не так ...

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

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


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


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