2016-10-08 5 views
0

フォームは情報を受け取り、その情報をSheet1にコピーします。 フォームには5つのテキストボックスと2つのコンボボックスが含まれています。最初のコンボボックスオプションは、CRIS、TRACS、およびDOCSです。 2番目のコンボボックスオプションは、1番目のコンボボックス選択に基づいていなければなりません。Excelのコンボボックスのドロップダウンアイテムは、前のコンボボックスに基づいています

Form Design

ここに私のコードは、これまでのところです:

Private Sub cmdClear_Click() 
Call UserForm_Initialize 
End Sub 

Private Sub cmdMove_Click() 

Dim emptyRow As Long 

Sheet1.Activate  'Make Sheet1 active 

emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1  

'Transfer information 
Cells(emptyRow, 1).Value = txtName.Value 
Cells(emptyRow, 2).Value = txtBtn.Value 
Cells(emptyRow, 3).Value = txtCbr.Value 
Cells(emptyRow, 4).Value = txtOrder.Value 
Cells(emptyRow, 5).Value = txtTrouble.Value 
Cells(emptyRow, 6).Value = ComboBox1.Value 

End Sub 
Private Sub UserForm_Click() 

End Sub 

Private Sub UserForm_Initialize() 

txtName.Value = ""   'Empty NameTextBox 
txtBtn.Value = ""   'Empty BTN 
txtCbr.Value = ""   'Empty CBR 
txtOrder.Value = ""   'Empty Order Number 
txtTrouble.Value = ""  'Empty Trouble Ticket Number 

ComboBox1.Clear 

With ComboBox1 
    .AddItem "CRIS" 
    .AddItem "TRACS" 
    .AddItem "DOCS" 
End With 

txtName.SetFocus 

End Sub 
+0

こんにちは卿を。迅速な対応もありがとうございます。私のスクリーンショットでは、2番目のコンボボックスに記入するデータを見つけることができます。 – Zhamepace

答えて

1

は、ユーザーフォームのコードウィンドウに次のコードを追加します。

Private Sub ComboBox1_Change() 
    With Me 
     If .ComboBox1.ListIndex <> -1 Then 
      Select Case .ComboBox1.Value 
       Case "CRIS" 
        .ComboBox2.List = Array("close", "reroute", "transfer") 
       Case "TRACS" 
        .ComboBox2.List = Array("close", "reroute") 
       Case "DOCS" 
        .ComboBox2.List = Array("completed", "transfer", "update") 
      End Select 
     End If 
    End With 
End Sub 
+0

迅速な対応のためにuser3598756さんに感謝します。それは今より良く機能します。 – Zhamepace

+0

ありがとうございます。私も友人からこのコードを得ました、それは全く同じように見えます。 – Zhamepace

+0

あなたは大歓迎です。それから、私の答えを受け入れたものとしてマークしてください。ありがとうございました – user3598756

関連する問題