我正在制作用户输入表格,他们必须输入一些数字。我希望他们只输入2.4到6之间的数字。我该怎么做?
目前我的代码是:
Private Sub txtHeight_Change()
HeightNumber = CStr(Val(Me.txtHeight.Value))
If HeightNumber >= 2.4 And HeightNumber <= 6 Then
Else
MsgBox ("You have entered an incorrect number")
End If
totcost = painttype + undercost + HeightNumber
TotalCost.Value = totcost
End
提前致谢。
答案 0 :(得分:1)
不完全确定这是否可以解决问题,但变量HeightNumber
已转换为字符串(CStr)。这会使您If
语句(<=
和>=
)中的运算符无效,因为它们不能与String变量一起使用。
答案 1 :(得分:0)
引用ImClarky
为什么不简单地转换为数字字符串的两倍并执行检查?
由于CDbl
,空字符串将始终触发错误(特别是因为宏可以解释字符串中的每个更改)。您可以使用On Error Goto
Sub的结尾对其进行错误处理,或者您只需检查字符串是否为&#34;&#34;。在这种情况下,不要执行Sub。
让我们说txtHeight是一个文本框
Private Sub txtHeight_Change()
If Not Me.txtHeight = "" Then
If CDbl(Me.txtHeight) >= 2.4 And CDbl(Me.txtHeight) <= 6 Then
' Put your code here, I think those following belong here too
totcost = painttype + undercost + CDbl(Me.txtHeight)
TotalCost.Value = totcost
Else
MsgBox ("You have entered an incorrect number")
End If
End If
End Sub
(这未经测试)