Неисправность области видимости модуля publi c переменная? - PullRequest
0 голосов
/ 24 апреля 2020

В этом простом коде область действия двух 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 вызовите функцию модуля, чтобы проверить и заполнить некоторые переменные. Я сделал несколько скриншотов на случай, если это поможет.

  1. Перед вызовом функции
  2. Во время работы над функцией
  3. После вызова функции
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...