Как изменить значение элемента управления в пользовательской форме с помощью публичной сабвуфера в модуле 2 - PullRequest
0 голосов
/ 11 января 2019

Я пытаюсь запустить подпрограмму, чтобы изменить значение ряда флажков, основанных на значении ячейки, в которой находится запись. У меня Sub как общедоступная в модуле, потому что она используется несколько раз в разных подпрограммы внутри самой пользовательской формы. Мой код ниже.

Public Sub ExceptionBoxCheck(ControlNameList As Range, BrevCodeList As Range, RecordValueRow As Range, BrevCodeColumn As Integer, AvailCheckBoxes As Integer)
    Dim ControlName As String, i As Integer, CodeCellContent As String
    Dim BrevCode As String

    For i = 0 To AvailCheckBoxes
        BrevCode = BrevCodeList.Offset(i, 0).Value
        CodeCellContent = RecordValueRow.Offset(0, BrevCodeColumn).Value
        ControlName = ControlNameList.Offset(i, 0).Value
        If InStr(CodeCellContent, BrevCode) <> 0 Then
            Me.Controls(ControlName).Value = True
        End If
    Next i
End Sub

Предполагается, что вышеприведенная подпрограмма будет проходить по списку имен элементов управления и сравнивать их с текущим именем элемента управления, который проверяется с помощью EasCheckBoxes, представляющего собой общее количество проверяемых блоков. Проблема, с которой я сталкиваюсь, заключается в том, что я получаю сообщение об ошибке «Неправильное использование меня», и я не могу найти ничего, что решает эту конкретную проблему. Единственное, о чем я могу думать, это то, что существует проблема, вызванная наличием этого сабвуфера в Module2, а не в самой пользовательской форме.

1 Ответ

0 голосов
/ 11 января 2019

Передайте Me как переменную из вызывающей процедуры в модуле класса формы в подпункт ExceptionBoxCheck . Затем вы можете обратиться ко всем элементам управления в этой форме через назначенное имя переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...