Excel VBA 用户窗体组合框问题

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/2637834/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-11 11:32:58  来源:igfitidea点击:

Excel VBA Userform Combobox problem

excelvbacomboboxitems

提问by Marc

I'm having difficulties with a Combobox in a userform in an Excel document. The combobox either doesn't appear in the userform, or the combobox remains blank, and when I enter any character in it, the list of items appears, but 2 or 3 times, instead of just once. When I select an item, the chosen item doesn't appear in the box. It seems as if Excel^picks one at random, and whichever item I choose from the list, it's always the same one that ends up being displayed in the box.

我在 Excel 文档中的用户表单中使用组合框时遇到困难。组合框要么没有出现在用户表单中,要么组合框保持空白,当我在其中输入任何字符时,项目列表会出现 2 或 3 次,而不仅仅是一次。当我选择一个项目时,所选项目不会出现在框中。似乎 Excel ^ 随机选择一项,无论我从列表中选择哪一项,最终显示在框中的始终是相同的一项。

Can anyone help me on this one? Thanks a lot!!!

谁能帮我解决这个问题?非常感谢!!!

This is the code I used:

这是我使用的代码:

Private Sub ComboBox1_Change()
    Select Case ComboBox1.Text
        Case "Een nieuwe start"
        Case "Alles heeft zijn tijd"
        Case "De wereld aan je voeten"
        Case "Een levend boek"
        Case "Drempels"
        Case "Kerstmis"
        Case "Confituur of choco"
        Case "Hoe groot is de hemel?"
        Case "Ongelovige Thomas"
        Case "Feesten"
        Case "Er is er één jarig!"
        Case "Eén van hart"
        Case "Ervoor gaan"
        Case "Groen gras"
        Case "RELatie"
        Case "Vele plaatjes"
        Case "Iedereen fan"
        Case "Schattenjacht"
        Case "Lichtbakens"
        Case "Rijke Luis"
        Case "Hemel op aarde"
        Case "Op bezoek"

        Case Else
    End Select
End Sub

Private Sub UserForm1_Initialize()
        ComboBox1.Clear
        ComboBox1.AddItem "Een nieuwe start"
        ComboBox1.AddItem "Alles heeft zijn tijd"
        ComboBox1.AddItem "De wereld aan je voeten"
        ComboBox1.AddItem "Een levend boek"
        ComboBox1.AddItem "Drempels"
        ComboBox1.AddItem "Kerstmis"
        ComboBox1.AddItem "Confituur of choco"
        ComboBox1.AddItem "Hoe groot is de hemel?"
        ComboBox1.AddItem "Ongelovige Thomas"
        ComboBox1.AddItem "Feesten"
        ComboBox1.AddItem "Er is er één jarig!"
        ComboBox1.AddItem "Eén van hart"
        ComboBox1.AddItem "Ervoor gaan"
        ComboBox1.AddItem "Groen gras"
        ComboBox1.AddItem "RELatie"
        ComboBox1.AddItem "Vele plaatjes"
        ComboBox1.AddItem "Iedereen fan"
        ComboBox1.AddItem "Schattenjacht"
        ComboBox1.AddItem "Lichtbakens"
        ComboBox1.AddItem "Rijke Luis"
        ComboBox1.AddItem "Hemel op aarde"
        ComboBox1.AddItem "Op bezoek"
        ComboBox1.Text = ComboBox1.List(0)
End Sub

采纳答案by Alex K.

You have UserForm1_Initializewhich will never get called, it must be UserForm_Initialize(no "1")

UserForm1_Initialize永远不会被调用,它必须是UserForm_Initialize(没有“1”)