Операторы IF для отображения результатов из флажков с использованием окна сообщения в vba - PullRequest
0 голосов
/ 23 декабря 2018

Я очень новичок в VBA и создал пользовательскую форму, которая позволяет пользователю выбирать, какие предметы он хотел бы изучать в течение 1-го и 2-го семестров учебного года, используя несколько флажков.После того, как пользователь выбрал свои параметры, в окне сообщения отображается сводная информация о том, что они выбрали.В настоящее время мой код работает, но показывает только первый выбранный параметр для каждого семестра, что мне нужно изменить в приведенном ниже коде, чтобы отображались все выбранные параметры?На скриншоте ниже вы можете увидеть мою форму, и, как вы можете видеть, в окне сообщений отображается только первый вариант из каждого списка.Большое спасибо!

Screenshot

'Подтвердите настройки

If Me.IB1.Value = True Then
msg1 = ("International Business 1" & Chr(13))
End If

If Me.BP1.Value = True Then
msg1 = msg1 + ("Business Programming 1" & Chr(13))
End If

If Me.BP.Value = True Then
msg1 = msg1 + ("Business Planning" & Chr(13))
End If

If Me.LI.Value = True Then
msg1 = msg1 + ("Leading & Influencing" & Chr(13))
End If

If Me.MS.Value = True Then
msg1 = msg1 + ("Management Science" & Chr(13))
End If

If Me.CS.Value = True Then
msg2 = ("Corporate Strategy" & Chr(13))
End If

If Me.PM.Value = True Then
msg2 = msg2 + ("Project Management" & Chr(13))
End If

If Me.BE.Value = True Then
msg2 = msg2 + ("Business Ethics" & Chr(13))
End If

If Me.BF.Value = True Then
msg2 = msg2 + ("Business Finance" & Chr(13))
End If

If Me.IB2.Value = True Then
msg2 = msg2 + ("International Business 2" & Chr(13))
End If

If Me.BP2.Value = True Then
msg2 = msg2 + ("Business Programming 2" & Chr(13))
End If

If Me.CG.Value = True Then
msg2 = msg2 + ("Corporate Governance" & Chr(13))
End If

MsgBox ("You have chosen the following options for semester 1" & Chr(13) & msg1 & _
"You have chosen the following options for semester 2" & Chr(13) & msg2)
End If

1 Ответ

0 голосов
/ 23 декабря 2018

Попробуйте выполнить

Private Sub btnConfirm_Click()
Dim strResult As String

    strResult = ""
    If Me.IB.Value = True Then
        strResult = strResult & Me.IB.Caption
    End If

    If Me.BP.Value = True Then
        strResult = strResult & vbCrLf & Me.BP.Caption
    End If

    If Me.BP1.Value = True Then
        strResult = strResult & vbCrLf & Me.BP1.Caption
    End If

    If Me.LI.Value = True Then
        strResult = strResult & vbCrLf & Me.LI.Caption
    End If

    MsgBox strResult
End Sub

Редактировать

Если вы хотите повторить все флажки в пользовательской форме, попробуйте выполнить следующие действия:

Private Sub btnShowSelected_Click()
Dim strResult As String

strResult = "You have selected following checkboxes." & vbCrLf
For Each ctrl In Me.Controls
    If TypeName(ctrl) = "CheckBox" Then
        If ctrl.Value = True Then
            strResult = strResult & vbCrLf & ctrl.Caption
        End If
    End If
Next ctrl

MsgBox strResult
End Sub

enter image description here

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