2017-07-24 192 views
0

我正在尋找一種方法來讓我的用戶窗體上的組合框具有默認值「什麼都沒有」或類似「從下方選擇」。Excel VBA組合框默認值

已經嘗試過各種谷歌建議,但是如果它是代碼的第一次迭代,或者更糟,先前選擇的值,則顯示在我的組合框中的值爲空。

代碼如下...

' Begin Code 
Private Sub UserForm_Initialize() 
    Dim RngTags As Range, RngNames As Range, i As Long 

ComboBox1.Value = "SomeText" 

'Set rng1 = Sheets("Admin").Range("deptrange2") 
Set rng1 = Range("ALLDEPT") 

With ComboBox1 
    .ColumnCount = 1 
    .Style = fmStyleDropDownList 
    .TextAlign = fmTextAlignLeft 
    .BoundColumn = 1 

    For i = 1 To rng1.Count 
     .AddItem rng1(i).Value 
     .List(.ListCount - 1, 1) = rng1(i).Value 
    Next i 
End With 

End Sub 


' Puts the value chosen from the list on admin f6 
Private Sub ComboBox1_Change() 
    Sheets("Admin").Range("f8").Value = ComboBox1.Value 

    Call myUnLoad 
End Sub 

' Gets rid of userform 
Sub myUnLoad() 
    UserForm1.Hide 
End Sub 
' End code 

感謝

安德魯

+1

隱藏用戶窗體並再次顯示它不會引發初始化事件。這可能會讓你對部分問題有所瞭解。 –

+1

就像@MichałTurczyn說的那樣,它可能是一個初始化問題。第一次運行它時是否會說「SomeText」?這也表明他在說什麼。你需要卸載一個用戶表單來重新初始化它。 '卸載我' –

+0

哦,是的,我明白你的觀點。 Tx –

回答

0

添加值後,您需要將的ListIndex設置爲0。

Combobox1.ListIndex=0

+0

感謝您的回覆。 「ComboBox1.ListIndex = 0」在我的代碼中出現在哪裏? Tx –

+0

在初始化例程結束時。 – braX