Ошибка компиляции в простой форме VBA и код нажатия кнопки - PullRequest
0 голосов
/ 21 июня 2019

Я получаю ошибку Compile Error: Expected function or variable, когда выбираю радиокнопку и нажимаю кнопку ОК в моей форме, и только верхняя строка кода, где заголовок макроса выделен желтым цветом.Моя форма буквально состоит из 4 радиокнопок и кнопки «ОК», из которой должен исходить код, приведенный ниже.

Я проверил имена макросов и названия кнопок выбора

Private Sub CommandButton1_Click()

    If Ties.Radio_OpPlan.Value = True Then
        Run clearties

    ElseIf Ties.Radio_Prior.Value = True Then
        Run TieToPrevious

    ElseIf Ties.Radio_Custom.Value = True Then
        Run CustomTie

    ElseIf Ties.Radio_NetCase.Value = True Then
        Run NetCaseTie

    Else
        output = MsgBox("You need to pick a case to tie to", vbExclamation)

    End If

    Me.Hide
    output = MsgBox("Case tied out", vbOKOnly)

End Sub

Ответы [ 2 ]

6 голосов
/ 21 июня 2019

Ваша проблема больше чем нравится из-за использования Run.Это используется для вызова макроса из его имени в виде строки.

Попробуйте удалить Run из ваших различных методов и посмотрите, исправляет ли это.

Private Sub CommandButton1_Click()

    If Ties.Radio_OpPlan.Value = True Then
        clearties

    ElseIf Ties.Radio_Prior.Value = True Then
        TieToPrevious

    ElseIf Ties.Radio_Custom.Value = True Then
        CustomTie

    ElseIf Ties.Radio_NetCase.Value = True Then
        NetCaseTie

    Else
        output = MsgBox("You need to pick a case to tie to", vbExclamation)
    End If

    Me.Hide
    output = MsgBox("Case tied out", vbOKOnly)

End Sub

Дополнительные примечания

  • Старайтесь не использовать подчеркивание .Подчеркивания имеют особое значение в VBA для событий и реализаций.Таким образом, вместо Radio_OpPlan вы могли бы сделать RadioOpPlan, а еще лучше просто OpPlan (на самом деле даже сделать OpPlan еще более информативным).

  • На мой взгляд, *В этой ситуации выражение 1025 * выглядит чище.

Select Case True

    Case RadioOpPlan
        clearties

    Case RadioPrior
        TieToPrevious

    Case RadioCustom
        CustomTie

    Case RadioNetCase
        NetCaseTie

    Case Else
        output = MsgBox("You need to pick a case to tie to", vbExclamation)

End Select
0 голосов
/ 21 июня 2019

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

Private Sub CommandButton1_Click()


If Ties.OpPlan.Value = True Then
clearties
ElseIf Ties.Prior.Value = True Then
TieToPrevious
ElseIf Ties.Custom.Value = True Then
CustomTie
ElseIf Ties.NetCase.Value = True Then
NetCaseTie
Else
output = MsgBox("You need to pick a case to tie to", vbOKOnly)
End If


Me.Hide


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