Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA组合框默认值_Excel_Vba_Combobox_Default - Fatal编程技术网

Excel VBA组合框默认值

Excel VBA组合框默认值,excel,vba,combobox,default,Excel,Vba,Combobox,Default,我正在寻找一种方法,使我的用户表单上的组合框具有默认值nothing或类似于Choose From的内容 我尝试过各种google建议,但如果是代码的第一次迭代,则“我的组合框”中显示的值为空,或者更糟的是,是先前选择的值 代码如下 ' Begin Code Private Sub UserForm_Initialize() Dim RngTags As Range, RngNames As Range, i As Long ComboBox1.Value = "SomeText"

我正在寻找一种方法,使我的用户表单上的组合框具有默认值nothing或类似于Choose From的内容

我尝试过各种google建议,但如果是代码的第一次迭代,则“我的组合框”中显示的值为空,或者更糟的是,是先前选择的值

代码如下

' 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
谢谢


Andrew

添加值后,需要将ListIndex设置为0


Combobox1.ListIndex=0

添加值后,需要将ListIndex设置为0


Combobox1.ListIndex=0

隐藏用户表单并再次显示它不会引发初始化事件。这可能会对你的部分问题有所帮助。就像@MichałTurczyn所说的,这可能是一个初始化问题。第一次运行时它是否会显示一些文本?这也说明了他在说什么。您需要卸载userform以使其再次初始化。哦,是的,我明白你的意思。TxHiding用户表单并再次显示它不会引发初始化事件。这可能会对你的部分问题有所帮助。就像@MichałTurczyn所说的,这可能是一个初始化问题。第一次运行时它是否会显示一些文本?这也说明了他在说什么。您需要卸载userform以使其再次初始化。哦,是的,我明白你的意思。谢谢你的回答。ComboBox1.ListIndex=0在我的代码中位于何处?TxAt结束初始化例程。感谢您的回复。ComboBox1.ListIndex=0在我的代码中位于何处?TxAt是初始化例程的结束。