[英]If statement partially not executed with UserForm
我使用简单的if语句在执行用户表单中的数据之前进行一些检查。 如果我的说法正确,代码将继续进行更改,否则,将给我msgbox
这部分不起作用:
If Me.AusAmmTubesAuslagern.Value <= Me.AusAvailTubes Or _
Me.AusAvailTubes <> "N/A" Then
第一部分, If Me.AusAmmTubesAuslagern.Value <= Me.AusAvailTubes
完美运行。 msgbox出现了。
如果我在声明中重现这一点:我的Me.AusAvailTubes
= N / A,则它不起作用。 做出这些更改。 仅当该字段具有除N / A之外的其他txt时,才应该发生这种情况。
我试图直接从列表中而不是从用户窗体中获取数据,同样的问题...
所有这些UserForm文本框都在列表中填充了其他宏的帮助。
每种材料以2种方式存储。 小件。 或大箱子。 从其中的几个人中,您可以拿起那些小电脑。 从其他只整个盒子。 那就是为什么我写了2个与UserForm一起使用的宏。
第一宏删除那些小pc。 第二只整个盒子。
我需要2个检查点:
检查点1:如果Me.AusAmmTubesAuslagern.Value <= Me.AusAvailTubes,则检查是否为ex。 仓库中的一个盒子里有40个试管,用户尝试删除更多的棕褐色40,这会用msgbox阻止他。
检查点2:该材料不是放在小块中。 可用,您需要随身携带整个包装盒。 在这种情况下,我的列表中有一列是“ N / A”,它将与其他宏一起写入该文本框Me.AusAvailTubes
然后用户才能尝试使用宏从仓库中将其撤回。 该文本框需要检查,如果该文本框为“ N / A”,则代码也将给出msgbox并将停止代码
整个代码:
Sub Tubes()
Dim totRows As Long, i As Long
Dim wsTubes As Worksheet
Dim oldVal As Integer
Dim newVal As Integer
Dim AusWS As Worksheet
Dim newValAus As String
Dim oldValAus As String
Select Case Me.AusListe.Value
Case Is = "E1G"
Set wsTubes = E1G
Set AusWS = AusE1G
totRows = wsTubes.Range("A1").CurrentRegion.Rows.Count
'Check to see if value exists
If WorksheetFunction.CountIf(wsTubes.Range("A:A"), Me.AusCharge.Value) = 0 Then
MsgBox "no right Charge chosen"
Me.AusCharge.Value = ""
Exit Sub
End If
With wsTubes
For i = 2 To totRows
If .Cells(i, 1) Like Me.AusCharge Then
If Me.AusAmmTubesAuslagern.Value <= Me.AusAvailTubes Or _
"N/A" <> Me.AusAvailTubes Then
oldVal = .Cells(i, 14).Value
newVal = oldVal + Me.AusAmmTubesAuslagern.Value
wsTubes.Cells(i, 14) = newVal
Else
MsgBox "So viele Stücke dieser sind nich auf Lager vorhanden!"
Exit Sub
End If
End If
Next
End With
'其余代码对以上部分不重要
End Select
End Sub
我猜你的问题是数字和字符串混合。 或者,您将OR
和AND
混淆了?
我假设不是Me.AusAmmTubesAuslagern
和Me.AusAvailTubes
是用户窗体上的控件,并且您要检查输入。 如果你仔细检查你if
语句来,你会发现总是导致True
-如果你输入的字符串开始的东西,如“X”为除AusAmmTubesAuslagern
为简单起见,让我们假设:
val1: Me.AusAmmTubesAuslagern.Value
val2: Me.AusAvailTubes
cond1: v1 <= v2
cond2: v2 <> "N/A"
然后,您的IF
语句将导致(也将条件添加到AND
,也许正是您所需要的)
val1 val2 cond1 cond2 cond1 OR cond2 cond1 AND cond2
-----------------------------------------------------------------
3 2 False True True False
2 3 True True True True
1 "N/A" True False True False
"AA" "N/A" True False True False
"XY" "N/A" False False False False
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.