在Userform Excel

时间:2015-07-24 15:31:05

标签: excel-vba vba excel

我目前拥有79个Combobox的Userform,其中填充了所有相同的值1-5。截至目前,如果用户误击键击,我会收到错误。因为在组合框更改后它会创建一个计算,因为它无法识别字符输入。所以我现在所做的是将组合框更改为fmStyleDropDownList,它仅用于仅添加组合框中列出的项目,现在的问题是在组合框更改事件之后我没有if语句来捕获0如果被输入。如果我在整个项目中没有大约3000个组合框,这不会有问题,所以我的问题是如何隐藏组合框中的项目0(如果我删除0,计算自动在组合框的位置放置0为了使计算起作用)或者如果任何组合框文本等于0,则可以向userform添加控件,然后frm?whatever.show。

 Dim ctrl As Control
 For Each ctrl In Me.Controls
 If TypeOf ctrl Is MSForms.ComboBox Then
    With ctrl
        .AddItem "1"
        .AddItem "2"
        .AddItem "3"
        .AddItem "4"
        .AddItem "5"
        .AddItem "0"


    End With
End If
Next ctrl

1 个答案:

答案 0 :(得分:1)

测试组合框按键事件中的键输入。

Private Sub ComboBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    'Test for zero being pressed.
    If KeyAscii = 48 Then
        'If we get a zero entered, change it to nothing.
        KeyAscii = 0
    End If
End Sub