2016-05-12 3 views
1

Я работаю над довольно большим приложением Excel через VBA. Я хочу разместить все мои общедоступные переменные в одном модуле. Затем я бы назначил и использовал эти переменные в других моих модулях в одной книге. Вот что у меня есть.Невозможно получить доступ к общедоступным переменным - Excel VBA

Option Explicit 

Public wdApp As Word.Application 
Public wdDoc As Word.Document 

Но когда я попытался назначить эти переменные в других моих модулях, я получил следующее сообщение. Должны ли публичные переменные быть доступными для всех модулей? Что мне утра?

enter image description here

ответ

1

Вы упускаете концепцию объектов, которые экземпляры модуля в класса.

Я ставлю свою рубашку, что вы написали, что код в модуле класса (примечание, ThisWorkbook и Sheet42 модулей являются модулями класса).

Добавить новый стандартный модуль (.bas) и перенести туда свои глобальные/общедоступные переменные.

Чтобы получить доступ к открытым членам модуля класса, вам необходимо сначала ввести экземпляр этого класса в New.

+0

Вы правы. Я использовал его как «классный модуль». Промах моей руки. – Dombey

1

Заявление должно быть в стандартном модуле в , а не в каком-либо из модулей рабочего листа/рабочей книги/класса, в противном случае они рассматриваются как общественные свойства класса (а именно рабочий лист, книги, или класс).

Смежные вопросы