这是我在执行UserForm之前检查的代码:
If Sheets("Warehouse").Cells(ProdID + 1, 3) < SalesQ.Text Then
MsgBox ("Not enough quantity - ID: ") & ProdID.Text
Exit Sub
End If
(如果成功,则从表格中扣除Q.)
Sheets("Warehouse").Cells(ProdID + 1, 3) = Sheets("Warehouse").Cells(ProdID + 1, 3) - SalesQ.Text
基本上我有2张 - 仓库和销售,我在Warehouse页面中插入数据,其中包含一个类似于用户形式的代码(如果您需要更多,请告诉我):
Cells(emptyRow, 1) = IDBox.Text
Cells(emptyRow, 2) = prodBox.Text
Cells(emptyRow, 3) = QBox.Text
所以问题是,在我第一次在Warehouse表中插入数据之后。每当我在销售部分测试销售时,它告诉我即使有数量也没有足够的数量。现在让我们说Q = 100,如果我输入90,80,60等,销售用户形式将无法工作,但是如果我输入一些像20或10这样的小数字,它将起作用...在初始扣除之后用小数字表示10或20,它将与80等任何其他数字完美配合。我认为它的结尾像(.Text,.Value等?但是IDK)Halp。
答案 0 :(得分:4)
我怀疑SalesQ.Text是String类型的文本字段。因此,您要将数字与s字符串进行比较 - 这是合法的,但可能会产生意外结果。
如果SalesQ.Text确实包含表示数字的字符串(例如它包含“120”),那么您可以使用Val函数将其转换为数字
Sheets("Warehouse").Cells(ProdID + 1, 3) < Val(SalesQ.Text)
答案 1 :(得分:2)
某些内容的.Text属性不会与Range.Value或Range.Value2进行数学比较 {{3}}属性,但未转换为真实数字。
If CDbl(Sheets("Warehouse").Cells(ProdID + 1, 3).Value2) < CDbl(SalesQ.Text) Then
MsgBox ("Not enough quantity - ID: ") & ProdID.Text
Exit Sub
End If
简而言之,1
不等于"1"
。