Получение суммы значений нескольких комбинированных списков в одном текстовом поле - PullRequest
0 голосов
/ 27 мая 2019

Простая система Point of Sale, которая отображает 2 продукта: Apple и Banana, каждая цена которых равна 10. Мне нужно отобразить общую сумму.

Я использовал событие cmbApple_Change (), которое я использовал, если elseifоператор

Мне удалось получить результат только для 1 комбинированного списка.

Private Sub cmbApple_Change()

If cmbApple.Value = 0 Then
    txtTotal.Text = 0
ElseIf cmbApple.Value = 1 Then
    txtTotal.Text = 10
ElseIf cmbApple.Value = 2 Then
    txtTotal.Text = 20
ElseIf cmbApple.Value = 3 Then
    txtTotal.Text = 30
End If

End Sub

GIF

Ошибка:

Error

1 Ответ

0 голосов
/ 27 мая 2019

Таким образом, вы всегда будете иметь общее значение:

Private Sub cmbApple_Change()

    Dim BananaItems As Byte
    Dim AppleItems As Byte

    On Error Resume Next
    AppleItems = cmbApple.Value
    BananaItems = cmbBanana.Value
    On Error GoTo 0

    TxtTotal.Text = AppleItems * 10 + BananaItems * 10

End Sub
Private Sub cmbBanana_Change()

    Dim BananaItems As Byte
    Dim AppleItems As Byte

    On Error Resume Next
    AppleItems = cmbApple.Value
    BananaItems = cmbBanana.Value
    On Error GoTo 0

    TxtTotal.Text = AppleItems * 10 + BananaItems * 10

End Sub
Private Sub UserForm_Initialize()

    Dim i As Byte

    With cmbApple
        For i = 0 To 5
            .AddItem (i)
        Next i
    End With
    With cmbBanana
        For i = 0 To 5
            .AddItem (i)
        Next i
    End With    

End Sub

Это просто, но работает для вашего примера. Если вам часто приходится менять цену, есть и другие способы.

Редактировать: проверьте отредактированный ответ, также изменили свой код для добавления элементов, вы можете изменить For i = 0 to 5 на любое число, которое вы хотите (максимум 256)

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