В этом простом коде область действия двух Public
переменных модуля General
(gsOT
и gsPath
) работает нормально. Если UF_Printer.CB_Ok_Click ()
вызов события формы General.CheckPath
, переменные видны и имеют одинаковое значение в обеих областях, форме и модуле, , как вы можете видеть на этом скриншоте окна проверки
Public gsOT As String
Public gsPath As String
Public Function CheckPath(ByVal sPath_I As String) As String
gsOT = "1234"
gsPath = sPath_I & "\"
CheckPath = gsPath
End Function
'Ok command button in UF_Printer user form
Private Sub CB_Ok_Click()
Dim PrintPath As String
PrintPath = CheckPath("C:\PDM\Client")
PrintPath = gsPath & gsOT
End Sub
Но в реальной среде две переменные (gsOT
и gsRuta
) также объявили Public
в General
модуле, не работают одинаково при вызове из Formulario_Printer.CB_Ok_click()
события формы.
gsOT
переменная работает правильно и имеет значение в форме Formulario_Printer
, но gsRuta
пусто. И то, и другое выходит за рамки General
контекста модуля, когда фокус приложения находится на контексте формы. Однако в простом примере они находятся в контексте и имеют одинаковое значение.
Код реальной среды очень сложен, но операция такая же, как в простом примере: из формы I вызовите функцию модуля, чтобы проверить и заполнить некоторые переменные. Я сделал несколько скриншотов на случай, если это поможет.
- Перед вызовом функции
- Во время работы над функцией
- После вызова функции