繁体   English   中英

如果部分语句未使用UserForm执行

If statement partially not executed with UserForm

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我使用简单的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
1 个回复

我猜你的问题是数字和字符串混合。 或者,您将ORAND混淆了?

我假设不是Me.AusAmmTubesAuslagernMe.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
1 使用UserForm的Excel VBA If / Then语句

所以我之前做过一些Javascript编辑,但从那以后它已经有一段时间了。 我知道我应该知道如何做到这一点,但解决方案已经逃过了我。 我要做的就是创建一个ElseIf命令,以便根据UserForm中的值将某些公式放入需要它们的单元格中。 这就是我所拥有的: ...

2 “ If”语句部分未执行

我目前正在为一个学校项目工作,它包括一个登录和注册系统。 这是我做的功能。 “ taken”变量将被传递回主程序。 这是检查是否使用任何用户名的代码的一部分。 如果是这样,则taked = true,然后显示一条消息。 现在,由于某种原因,if语句部分没有执行。 该消息 ...

3 if语句的else部分未执行

我一直在努力工作的JavaScript代码大部分都在工作,但我一直遇到怪癖。 您可以在注释中看到其他人的工作,但是我无法深入执行该部分。 这是if(isCorrect!=“是”)行。 我把它当作if / else,但是其他将永远不会执行。 所以我做了一个单独的if语句 ...

4 在Userform上使用带有复选框的IF和AND语句

一点背景:到目前为止,我创建了一个带有复选框的用户表单,每个复选框都运行单独的宏,然后在未选中时运行相同的宏以返回“正常”状态。 这是使用IF,Else声明完成的。 我的问题是如何将If语句与AND语句结合使用,这样当/如果选中两个框,它们就会运行不同的代码或宏。 我仍然是VBA和 ...

6 函数未执行(逻辑语句的一部分)

运行下面描述的代码片段时,我得到了一个有趣的python行为。 显然,python解释器会进行某种优化,并且不会运行该函数,因为逻辑语句输出是已知的(False和True仍然等于false)。 输出: 预期产量: 显而易见的解决方案是: 但是我想知道是否存在 ...

9 简单的if语句似乎未执行部分代码

当我按下一个按钮时,下面的代码被调用。 如果currentImageButton为null,而Drawable为null(它将是第一次调用它),则只需将一条消息打印到控制台即可。 否则,将画布的背景设置为Drawable文件夹中的图像。 我知道条件有时是正确的,因为在第一次按下按钮后会打印 ...

10 部分 if 语句没有被执行

我正在使用 Zdog 库在 javascript 中创建 3d 对象。 在控制我的动画的函数中,我试图让一个粒子随机移动,然后在一个间隔后返回到它的原始点。 这是我的代码: 我已经在第二个 if 语句中放置了警报,并且计时器正在重置,但原点没有。 此外,粒子最初会执行我需要的操作,但在重置后它将 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM