Дополнительно
Как объявить глобальную переменную в VBA?
Я написал следующий код:
Function find_results_idle()
Public iRaw As Integer
Public iColumn As Integer
iRaw = 1
iColumn = 1
И я получаю сообщение об ошибке:
"недопустимый атрибут в Sub или Function"
Вы знаете, что я сделал неправильно?
Я пытался использовать Global
вместо Public
, но получил ту же проблему.
Я попытался объявить саму функцию как Public
, но это тоже не помогло.
Что мне нужно сделать, чтобы создать глобальную переменную?
127
8
Вы должны объявить переменные вне функции:
Это вопрос о scope.
Если вы хотите, чтобы переменные действовали только в течение жизни функции, используйте
Dim
(сокращение от Dimension) внутри функции или подфункции для объявления переменных:Переменная global (как отметил SLaks) объявляется вне функции с помощью ключевого слова
Public
. Эта переменная будет доступна в течение всего времени работы приложения. В случае с Excel это означает, что переменные будут доступны до тех пор, пока открыта данная рабочая книга Excel.Вы также можете иметь переменные, доступные только в пределах определенного модуля (или класса), объявив их с помощью ключевого слова
Private
.Если вы создаете большое приложение и чувствуете необходимость в использовании глобальных переменных, я бы рекомендовал создать отдельный модуль только для ваших глобальных переменных. Это поможет вам отслеживать их в одном месте.
Чтобы использовать глобальные переменные, вставьте новый модуль из пользовательского интерфейса проекта VBA и объявите переменные с помощью
Global
.Вопрос действительно о том, как другой парень положил его.
Короче, считай это на "модуля":
Вы можете проверить это [ссылка на MSDN](https://msdn.microsoft.com/en-us/library/office/gg264241.aspx на "объявление переменных и") Подробнее о переменной и другой переполнение стека вопрос Подробнее о том, как переменные выйдут из области видимости.
Два других простых вещей:
Если эта функция находится в модуле класса, вы могли бы просто оставить их за пределами функции, поэтому она имеет глобальную область видимости
. Глобальном уровне означает, что переменная может быть доступна еще одна функция **в один и тот же модуль/класс** (если вы используете
Дим` как декларацию, использовать "общественность", если вы хотите, чтобы переменные могут быть доступны все функции во всех модулях) :Создать общественное целое число в генеральной декларации.
Тогда в вашей функции вы можете увеличить его значение каждый раз. См. пример (функция сохранения приложений по электронной почте, как CSV).
Хороший способ, чтобы создать общественные/глобальные переменные-это относиться к форме как объект класса и объявлять свойства и использование государственного имущества Вам [переменная] получить доступ к свойству/методу. Также может потребоваться справка или передать ссылку на экземпляр модуля. Вы получите ошибки, если вы вызываете методы формы/отчеты, закрытые. Пример: проходит мимо меня.Форма.Модуль.Родитель в функция Sub/не в форме.
Так в других модулях можно получить доступ к:
Если вы используете позднее связывание, как я всегда делаю проверку на NULL значения и объекты, которые ничего, прежде чем делать какой-либо обработки.
Также вы можете использовать -
Его испытания в Office 2010