设置和整数为小数,没有错误。拒绝非整数值的组合框

时间:2014-04-23 00:49:56

标签: excel vba combobox

这是我第一次尝试在excel中使用vba,以及我在很长一段时间内的第一次编程。我试图创建一个组合框,拒绝除整数1-9之外的任何输入。可以从下拉列表中选择值,但是如果您输入文本或范围之外的内容,请单击“选择”,我希望它清除并重新提示用户窗体。它适用于范围之外的文本和数字,但如果它是范围内的小数值则不行。

我的基本想法是,如果输入是文本或小数,当我试图将其设置为我声明的整数变量时会出现错误,但如果它是小数,它似乎将数字舍入为整数。这是整数变量的标准吗?可能有一种更简单的方法来做同样的事情,但我也对它的工作方式感兴趣。

这是逻辑部分:

Public offdays As Integer          'declared at start

Private Sub CommandButton1_Click() 'click the select commandbutton on the userform

On Error GoTo errorhandler:

offdays = ComboBox1.Value          'set offdays = to combobox value
range ("K3") = offdays             'print the value to a cell

If offdays >= 0 And offdays <= 10 Then
   Unload Me
   Exit Sub
End If

errorhandler:
Unload Me
store_offdays.Show 

End Sub

1 个答案:

答案 0 :(得分:0)

如评论所述,要捕获小数位,请将变量声明为SingleDouble 整数只保留整数 但是,如果您的变量可能接受其他数据类型,则只需将其声明为Variant 至于完成你想要的东西,你可以尝试下面:

Dim offdays As Variant

offdays = ComboBox1.Value
If Not offdays Like "[1-9]" Then Unload Me: Exit Sub

以上严格接受数字1-9(单个数字)仅作为输入 没有文字,没有小数,没有零 希望这会有所帮助。