2017-06-05 15 views
0

コードを書く手助けが必要です - 私はユーザーフォームを開発しました。別のコンボボックスの中のコンボボックス

私は手紙の主なセクションを表示するには1つのコンボボックスを必要とする: 「私たちの決意に基づき、HE/SHEが還付を受けることが」 「私たちの決意に基づき、彼は/彼女は返金する権利がない」

が、私はまた、性別を選択するために、コンボボックスを必要とする: "HE" "SHE"

これまでのところ、私は持っている:

Private Sub Userform_Initialize() 
With ComboBoxDecision 
.AddItem "based on our determination HE/SHE is entitled to a refund" 
.AddItem "based on our determination HE/SHE is not entitled to a refund" 
End With 
With ComboBoxGender 
.AddItem "HE" 
.AddItem "SHE" 
End With 
lbl_exit: 
Exit sub 
End Sub 

Private Sub CommandButtonOk_Click() 
Application.ScreenUpdating = False 
With ActiveDocument 
    .Bookmarks("Decision").Range.Text = ComboBoxDecision.Value 
    End With 
Application.ScreenUpdating = True 
Unload Me 
End Sub 

が行うにはそこの方法です:

.AddItem "based on our determination "Whatever option was selected in ComboBoxGender" is entitled to a refund" 
.AddItem "based on our determination "Whatever option was selected in ComboBoxGender" is not entitled to a refund" 

これ以上の情報を提供できません。

答えて

1

最も単純な方法は、おそらく、 '性別'のコンボボックスが変更されるたびに適切なテキストで '決定'コンボボックスを入力することです。

Private Sub ComboBoxGender_Change() 
    Dim gndr As String 

    gndr = Me.ComboBoxGender.Text 

    With Me.ComboBoxDecision 
     .Clear 
     .AddItem "based on our determination " & _ 
       gndr & " is entitled to a refund" 
     .AddItem "based on our determination " & _ 
       gndr & " is not entitled to a refund" 
    End With 

End Sub 

Private Sub UserForm_Initialize() 
    With Me.ComboBoxGender 
     .AddItem "HE" 
     .AddItem "SHE" 
     .ListIndex = 0 
    End With 
End Sub 
1

あなたは同じコンボボックスの異なる列に複数の選択肢を保存することができますので、同様にあなたは、ComboBoxGender_Changeイベントをトラップして、これを行うと思います。性別の選択に応じて、どちらか一方の列を非表示にします。コードでは、次のようになります。

Option Explicit 
Option Base 0 

Private Sub UserForm_Initialize() 

    Dim Arr(1, 1) As String 

    ' Column, item: 
    Arr(1, 0) = "Based on our determination she is not entitled to a refund" 
    Arr(0, 0) = Replace(Arr(1, 0), "not", "") 
    Arr(1, 1) = Replace(Arr(1, 0), "she", "he") 
    Arr(0, 1) = Replace(Arr(1, 1), "not", "") 
    With CbxDecision 
     .List = Arr 
     .ColumnCount = 2 
     .ListIndex = 0 
    End With 

    With CbxGender 
     .List = Split("He She") 
     .ListIndex = 0 
    End With 
End Sub 


Private Sub CbxGender_Change() 
    ' set the list width for 1st and 2nd column 
    ' one of them must always be 0 (= hidden) 
    CbxDecision.ColumnWidths = Split("0pt;90pt|90pt;0pt", "|")(CbxGender.ListIndex) 
End Sub 
関連する問題