2013-09-29 2 views
0

у меня есть немного кода и несколько модулей, которые я хотел бы получить доступ к переменным вИспользуйте переменную в нескольких модулях

в моем начальном модуле я объявляя переменную как «Public». - это то, что я надеялся, что позволит мне получить доступ к переменным в различных модулях ...

Option Explicit 
Public Ttermanf, Ttermend, Date2, DateN, Ttermeld As Date 
Public ft, mainb_ret, swp, Tmod, Tsub4, Tslz4 As String 

Тогда я вызываю в UserForm из моего модуля

Form1.show 

старта на UserForm куча Textboxes, выпадающие и т. д. обычный материал, все работает до сих пор ...

Когда я нажимаю кнопку «1», он вызывает разные модули - я пытался разбить код, чтобы мой код в форме не был таким длинным, таким образом группируя вещи логически.

call header_m 

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

В основной форме значения находятся там, но как только я вскакиваю в другой модуль они пустые ...

предложения? Я пытался использовать глобальные, но то же самое.

Почему? Я думал, объявив его публичным, он должен быть доступен в любом модуле? не так ?

ответ

0
  1. Убедитесь, что Dims находятся в стандартном модуле
  2. Убедитесь, что Dims предшествуют какие Subs или функции
  3. Убедитесь, что переменные присваиваются значения, прежде чем они используются
  4. Исправьте Dim синтаксис:

использование:

Dim a As String, b As String, c As String 

, а не

Dim a, b, c As String 
+0

Привет, tx для этого. Странно то, что если я выберу код из модуля и вставлю его обратно в пользовательскую форму (вместо вызова ...) все работает отлично. Я попытался передать переменную в модуль 'call header_m (Ttermend)', но не сигары тоже. – Haissam

+0

Просто создал пустую простую книгу, и там она работает так, как ожидалось. Все еще не понимаю, почему оригинальная работа не работает. Если я делаю MsgBox для отображения значения непосредственно перед вызовом модуля, это значение присваивается. В модуле первое, что есть MsgBox для одного и того же значения, и оно пустое .. странно .. Я пойду на охоту еще немного. – Haissam

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