double arrow

End Sub. При запуске программы ПеременныеУровняПроцедуры объявляется переменная Var1, ей присваивается значение 55

End Sub

Sub DisplayMessage()

MsgBox Var1

При запуске программы ПеременныеУровняПроцедуры объявляется переменная Var1, ей присваивается значение 55, которое затем выводится в информационном окне. После закрытия окна ПеременныеУровняПроцедуры вызывает другую программу, DisplayMessage, которая также должна отобразить в информационном окне значение переменной Var1. Однако в этом случае окно оказывается пустым (напомним, в первый раз в нем отобразилось число 55): поскольку Varlобъявлена на уровне процедуры. За пределами ПеременныеУровняПроцедуры (в которой она описана) её значение не определено. Когда VBA встречает Varl в программе DisplayMessage, он считает, что имеет дело с необъявленной пустой переменной, присваивает ей тип Variant и выводит в информационном окне пустую строку. Видимость на уровне процедуры проиллюстрирована на Рис. 7‑1.

Рис. 7‑1 Переменная Var1, объявленная на уровне процедуры, доступна только в программе
ПеременныеУровняПроцедуры.

Чтобы исходное значение Varl (55) было доступно в DisplayMessage, придется либо передать его в качестве аргумента, либо расширить область видимости этой переменной, как описано в следующем разделе.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: