Выберите Case, не меняя все фоны и неправильно получая условия - PullRequest
0 голосов
/ 05 октября 2019

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

Private Sub CommandButton13_Click()

        Select Case Label61.Caption
            Case Is <= TextBox39.Text
            Label61.BackColor = &HC0C0FF
            Case Is > TextBox39.Text
            Label61.BackColor = &HC0FFC0

        Select Case Label62.Caption
            Case Is <= TextBox39.Text
            Label62.BackColor = &HC0C0FF
            Case Is > TextBox39.Text
            Label62.BackColor = &HC0FFC0

        Select Case Label63.Caption
            Case Is <= TextBox39.Text
            Label63.BackColor = &HC0C0FF
            Case Is > TextBox39.Text
            Label63.BackColor = &HC0FFC0

        Select Case Label64.Caption
            Case Is <= TextBox39.Text
            Label64.BackColor = &HC0C0FF
            Case Is > TextBox39.Text
            Label64.BackColor = &HC0FFC0

        Select Case Label65.Caption
            Case Is <= TextBox39.Text
            Label65.BackColor = &HC0C0FF
            Case Is > TextBox39.Text
            Label65.BackColor = &HC0FFC0

        Select Case Label66.Caption
            Case Is <= TextBox39.Text
            Label66.BackColor = &HC0C0FF
            Case Is > TextBox39.Text
            Label66.BackColor = &HC0FFC0

        Select Case Label67.Caption
            Case Is <= TextBox39.Text
            Label67.BackColor = &HC0C0FF
            Case Is > TextBox39.Text
            Label67.BackColor = &HC0FFC0

        Select Case Label68.Caption
            Case Is <= TextBox39.Text
            Label68.BackColor = &HC0C0FF
            Case Is > TextBox39.Text
            Label68.BackColor = &HC0FFC0

        Select Case Label69.Caption
            Case Is <= TextBox39.Text
            Label69.BackColor = &HC0C0FF
            Case Is > TextBox39.Text
            Label69.BackColor = &HC0FFC0

        Select Case Label70.Caption
            Case Is <= TextBox39.Text
            Label70.BackColor = &HC0C0FF
            Case Is > TextBox39.Text
            Label70.BackColor = &HC0FFC0

        Select Case Label71.Caption
            Case Is <= TextBox39.Text
            Label71.BackColor = &HC0C0FF
            Case Is > TextBox39.Text
            Label71.BackColor = &HC0FFC0

        Select Case Label72.Caption
            Case Is <= TextBox39.Text
            Label72.BackColor = &HC0C0FF
            Case Is > TextBox39.Text
            Label72.BackColor = &HC0FFC0

        Select Case Label73.Caption
            Case Is <= TextBox39.Text
            Label73.BackColor = &HC0C0FF
            Case Is > TextBox39.Text
            Label73.BackColor = &HC0FFC0

        Select Case Label74.Caption
            Case Is <= TextBox39.Text
            Label74.BackColor = &HC0C0FF
            Case Is > TextBox39.Text
            Label74.BackColor = &HC0FFC0

        Select Case Label75.Caption
            Case Is <= TextBox39.Text
            Label75.BackColor = &HC0C0FF
            Case Is > TextBox39.Text
            Label75.BackColor = &HC0FFC0

        Select Case Label76.Caption
            Case Is <= TextBox39.Text
            Label76.BackColor = &HC0C0FF
            Case Is > TextBox39.Text
            Label76.BackColor = &HC0FFC0

        Select Case Label77.Caption
            Case Is <= TextBox39.Text
            Label77.BackColor = &HC0C0FF
            Case Is > TextBox39.Text
            Label77.BackColor = &HC0FFC0

        Select Case Label78.Caption
            Case Is <= TextBox39.Text
            Label78.BackColor = &HC0C0FF
            Case Is > TextBox39.Text
            Label78.BackColor = &HC0FFC0

        Select Case Label79.Caption
            Case Is <= TextBox39.Text
            Label79.BackColor = &HC0C0FF
            Case Is > TextBox39.Text
            Label79.BackColor = &HC0FFC0

        Select Case Label80.Caption
            Case Is <= TextBox39.Text
            Label80.BackColor = &HC0C0FF
            Case Is > TextBox39.Text
            Label80.BackColor = &HC0FFC0

        Select Case Label81.Caption
            Case Is <= TextBox39.Text
            Label81.BackColor = &HC0C0FF
            Case Is > TextBox39.Text
            Label81.BackColor = &HC0FFC0

        Select Case Label82.Caption
            Case Is <= TextBox39.Text
            Label82.BackColor = &HC0C0FF
            Case Is > TextBox39.Text
            Label82.BackColor = &HC0FFC0

        Select Case Label83.Caption
            Case Is <= TextBox39.Text
            Label83.BackColor = &HC0C0FF
            Case Is > TextBox39.Text
            Label83.BackColor = &HC0FFC0

        Select Case Label84.Caption
            Case Is <= TextBox39.Text
            Label84.BackColor = &HC0C0FF
            Case Is > TextBox39.Text
            Label84.BackColor = &HC0FFC0

        End Select
        End Select
        End Select
        End Select
        End Select
        End Select
        End Select
        End Select
        End Select
        End Select
        End Select
        End Select
        End Select
        End Select
        End Select
        End Select
        End Select
        End Select
        End Select
        End Select
        End Select
        End Select
        End Select
        End Select

    End Sub

Это еще не все, мне нужно около 60 записейВыберите дело. Я не против копировать и вставлять одну за другой, но сталкиваюсь с двумя проблемами: 1. Пока не все записи меняют цвет фона, например, 6 или 7. Не знаю почему. 2. Условное становится ошибочным иногда, изменяя цвет, который не предполагался, что означает условное неправильное выражение.

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 05 октября 2019

Вы повторяете одну и ту же операцию снова и снова, только с одним вариантом, поэтому:

Private Sub CommandButton13_Click()
   Dim n As long

   for n = 61 to 84 'for example
       CheckValue Me.Controls("Label" & n)
   Next n
End sub 


Sub CheckValue(lbl)
   'might need some error handling for non-numeric values...
   lbl.BackColor = IIf(CDbl(lbl.Caption) <= CDbl(TextBox39.Text), _
                       &HC0C0FF, &HC0FFC0)
End Sub
1 голос
/ 05 октября 2019

На всякий случай, если вы не можете установить Rubber duck, это то, как ваш код выглядит при правильном отступе.

Option Explicit

Private Sub CommandButton13_Click()

    Select Case Label61.Caption
        Case Is <= TextBox39.Text
            Label61.BackColor = &HC0C0FF
        Case Is > TextBox39.Text
            Label61.BackColor = &HC0FFC0

            Select Case Label62.Caption
                Case Is <= TextBox39.Text
                    Label62.BackColor = &HC0C0FF
                Case Is > TextBox39.Text
                    Label62.BackColor = &HC0FFC0

                    Select Case Label63.Caption
                        Case Is <= TextBox39.Text
                            Label63.BackColor = &HC0C0FF
                        Case Is > TextBox39.Text
                            Label63.BackColor = &HC0FFC0

                            Select Case Label64.Caption
                                Case Is <= TextBox39.Text
                                    Label64.BackColor = &HC0C0FF
                                Case Is > TextBox39.Text
                                    Label64.BackColor = &HC0FFC0

                                    Select Case Label65.Caption
                                        Case Is <= TextBox39.Text
                                            Label65.BackColor = &HC0C0FF
                                        Case Is > TextBox39.Text
                                            Label65.BackColor = &HC0FFC0

                                            Select Case Label66.Caption
                                                Case Is <= TextBox39.Text
                                                    Label66.BackColor = &HC0C0FF
                                                Case Is > TextBox39.Text
                                                    Label66.BackColor = &HC0FFC0

                                                    Select Case Label67.Caption
                                                        Case Is <= TextBox39.Text
                                                            Label67.BackColor = &HC0C0FF
                                                        Case Is > TextBox39.Text
                                                            Label67.BackColor = &HC0FFC0

                                                            Select Case Label68.Caption
                                                                Case Is <= TextBox39.Text
                                                                    Label68.BackColor = &HC0C0FF
                                                                Case Is > TextBox39.Text
                                                                    Label68.BackColor = &HC0FFC0

                                                                    Select Case Label69.Caption
                                                                        Case Is <= TextBox39.Text
                                                                            Label69.BackColor = &HC0C0FF
                                                                        Case Is > TextBox39.Text
                                                                            Label69.BackColor = &HC0FFC0

                                                                            Select Case Label70.Caption
                                                                                Case Is <= TextBox39.Text
                                                                                    Label70.BackColor = &HC0C0FF
                                                                                Case Is > TextBox39.Text
                                                                                    Label70.BackColor = &HC0FFC0

                                                                                    Select Case Label71.Caption
                                                                                        Case Is <= TextBox39.Text
                                                                                            Label71.BackColor = &HC0C0FF
                                                                                        Case Is > TextBox39.Text
                                                                                            Label71.BackColor = &HC0FFC0

                                                                                            Select Case Label72.Caption
                                                                                                Case Is <= TextBox39.Text
                                                                                                    Label72.BackColor = &HC0C0FF
                                                                                                Case Is > TextBox39.Text
                                                                                                    Label72.BackColor = &HC0FFC0

                                                                                                    Select Case Label73.Caption
                                                                                                        Case Is <= TextBox39.Text
                                                                                                            Label73.BackColor = &HC0C0FF
                                                                                                        Case Is > TextBox39.Text
                                                                                                            Label73.BackColor = &HC0FFC0

                                                                                                            Select Case Label74.Caption
                                                                                                                Case Is <= TextBox39.Text
                                                                                                                    Label74.BackColor = &HC0C0FF
                                                                                                                Case Is > TextBox39.Text
                                                                                                                    Label74.BackColor = &HC0FFC0

                                                                                                                    Select Case Label75.Caption
                                                                                                                        Case Is <= TextBox39.Text
                                                                                                                            Label75.BackColor = &HC0C0FF
                                                                                                                        Case Is > TextBox39.Text
                                                                                                                            Label75.BackColor = &HC0FFC0

                                                                                                                            Select Case Label76.Caption
                                                                                                                                Case Is <= TextBox39.Text
                                                                                                                                    Label76.BackColor = &HC0C0FF
                                                                                                                                Case Is > TextBox39.Text
                                                                                                                                    Label76.BackColor = &HC0FFC0

                                                                                                                                    Select Case Label77.Caption
                                                                                                                                        Case Is <= TextBox39.Text
                                                                                                                                            Label77.BackColor = &HC0C0FF
                                                                                                                                        Case Is > TextBox39.Text
                                                                                                                                            Label77.BackColor = &HC0FFC0

                                                                                                                                            Select Case Label78.Caption
                                                                                                                                                Case Is <= TextBox39.Text
                                                                                                                                                    Label78.BackColor = &HC0C0FF
                                                                                                                                                Case Is > TextBox39.Text
                                                                                                                                                    Label78.BackColor = &HC0FFC0

                                                                                                                                                    Select Case Label79.Caption
                                                                                                                                                        Case Is <= TextBox39.Text
                                                                                                                                                            Label79.BackColor = &HC0C0FF
                                                                                                                                                        Case Is > TextBox39.Text
                                                                                                                                                            Label79.BackColor = &HC0FFC0

                                                                                                                                                            Select Case Label80.Caption
                                                                                                                                                                Case Is <= TextBox39.Text
                                                                                                                                                                    Label80.BackColor = &HC0C0FF
                                                                                                                                                                Case Is > TextBox39.Text
                                                                                                                                                                    Label80.BackColor = &HC0FFC0

                                                                                                                                                                    Select Case Label81.Caption
                                                                                                                                                                        Case Is <= TextBox39.Text
                                                                                                                                                                            Label81.BackColor = &HC0C0FF
                                                                                                                                                                        Case Is > TextBox39.Text
                                                                                                                                                                            Label81.BackColor = &HC0FFC0

                                                                                                                                                                            Select Case Label82.Caption
                                                                                                                                                                                Case Is <= TextBox39.Text
                                                                                                                                                                                    Label82.BackColor = &HC0C0FF
                                                                                                                                                                                Case Is > TextBox39.Text
                                                                                                                                                                                    Label82.BackColor = &HC0FFC0

                                                                                                                                                                                    Select Case Label83.Caption
                                                                                                                                                                                        Case Is <= TextBox39.Text
                                                                                                                                                                                            Label83.BackColor = &HC0C0FF
                                                                                                                                                                                        Case Is > TextBox39.Text
                                                                                                                                                                                            Label83.BackColor = &HC0FFC0

                                                                                                                                                                                            Select Case Label84.Caption
                                                                                                                                                                                                Case Is <= TextBox39.Text
                                                                                                                                                                                                    Label84.BackColor = &HC0C0FF
                                                                                                                                                                                                Case Is > TextBox39.Text
                                                                                                                                                                                                    Label84.BackColor = &HC0FFC0

                                                                                                                                                                                            End Select
                                                                                                                                                                                    End Select
                                                                                                                                                                            End Select
                                                                                                                                                                    End Select
                                                                                                                                                            End Select
                                                                                                                                                    End Select
                                                                                                                                            End Select
                                                                                                                                    End Select
                                                                                                                            End Select
                                                                                                                    End Select
                                                                                                            End Select
                                                                                                    End Select
                                                                                            End Select
                                                                                    End Select
                                                                            End Select
                                                                    End Select
                                                            End Select
                                                    End Select
                                            End Select
                                    End Select
                            End Select
                    End Select
            End Select
    End Select

Таким образом, вы должны увидеть, что Label62 будет достигнут только во второмслучай выбора первого выбора, и так далее. Я подозреваю, что вам нужно прочитать о том, как выполнить итерацию группы элементов управления, поскольку это значительно облегчит вашу жизнь.

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