Код ошибки 424 при попытке установить значение на основе ответа окна сообщения - PullRequest
0 голосов
/ 04 сентября 2018

Я пытался заставить это работать, но я не вижу проблемы с этим. Моя форма называется «Request_Order», а флажок «Да / Нет» называется «Обработано»

Private Sub MarkProcessedOrig_Click()
Const cstrPrompt As String = _
    "Are you sure you want to mark this request as processed? Yes/No"

If MsgBox(cstrPrompt, vbQuestion + vbYesNo) = vbYes Then
    Request_Order.Controls(Processed).Value = True
Else: Cancel = True
End If
End Sub

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Необходимо удалить «Request_Order», в этом нет необходимости, он будет успешно запущен после удаления.

Пожалуйста, попробуйте код ниже:

 Private Sub CommandButton1_Click()
        Const cstrPrompt As String = _
            "Aref'jei you sure you want to mark this request as processed? Yes/No"

        If MsgBox(cstrPrompt, vbQuestion + vbYesNo) = vbYes Then
            Controls("CheckBox1").Value = True
        Else: Cancel = True
        End If
        End Sub
0 голосов
/ 04 сентября 2018

Ваш синтаксис неправильный. Элементы коллекции идентифицируются по имени элемента, которое является строкой, или по смещению, которое является целым числом. Так что вам нужно сделать это:

Request_Order.Controls("Processed").Value = True

Ошибка, которую вы получаете, состоит в том, что среда выполнения VBA не может проанализировать ваш оператор как объект, потому что ваш код говорит, что есть переменная с именем Processed, которая оценивается как строка, и что эта переменная является назначенной строковое значение, которое является именем одного из элементов управления в вашей коллекции. Поскольку это не так, вы получаете эту ошибку.

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