0

コンボボックスの内容に問題があります。私のユーザーフォームには、3 つのコンボボックスがあります。コンボボックス 1 から選択したアイテムに応じて、コンボボックス 2 はセット 1 またはセット 2 のいずれかを表示する必要があります。

コンボボックス 1 と 2 から選択した項目の組み合わせに応じて、コンボボックス 3 のコンテンツでも同じことが起こります。

ただし、2 番目のコンボボックスでセット 1 を生成する必要があるコンボボックス 1 の項目を選択しても、セット 2 によって常に設定されるコンボボックス 2 で問題が発生しています。

これは私が使用したコードです:

Private Sub UserForm_Initialize()
    With ComboBox1
        .Clear
        .AddItem "In contrast"
        .AddItem "Eng?"
        .AddItem "Trillers"
        .AddItem "Natuur(lijk)"
        .AddItem "Muziektrafiek"
    End With

    If ComboBox1.Value = "In contrast" Then
        GoTo LineComboBox1Set1
    End If

    If ComboBox1.Value = "Eng?" Then
        GoTo LineComboBox1set2
    End If

    If ComboBox1.Value = "Trillers" Then
        GoTo LineComboBox1set2
    End If

    If ComboBox1.Value = "Natuur(lijk)" Then
        GoTo LineComboBox1set2
    End If

    If ComboBox1.Value = "Muziektrafiek" Then
        GoTo LineComboBox1set2
    End If


LineComboBox1Set1:
     With ComboBox2
        .Clear
        .AddItem "Op verkenning"
        .AddItem "Gehoord? Gezien?"
        .AddItem "On stage"
        .AddItem "Creabende"
        .AddItem "Ingeblikt"
     End With

LineComboBox1set2:
     With ComboBox2
        .Clear
        .AddItem "Op verkenning"
        .AddItem "Gehoord? Gezien?"
        .AddItem "On stage"
        .AddItem "Creabende"
        .AddItem "Ingeblikt"
        .AddItem "Speak up"
        .AddItem "In de kijker"
    End With

誰でもこれで私を助けることができますか?

よろしくお願いします!

よろしく、 マーク

4

1 に答える 1

0

goto ステートメントを使用するとコードが終了しないため、これで済みます。つまり、コードを LineComboBox1set1 に送信すると、コードがそれを実行し、それを止めるものがないため、コードの各行を実行し続けます!

簡単な修正は、各「End With」の後に「Exit Sub」を追加することですが、それが私のコードである場合は、SELECT CASE スイッチを使用してリファクタリングします。

SELECT CASE ComboBox1.Value
     Case "In contrast"
           With ComboBox2
                Etc.....
           End With
     Case "Eng?", "Thriller" and so on
           With ComboBox2
                Stuff for set 2
           End With
  End Select
于 2010-04-19T10:27:15.627 に答える